Sha256: df622cb586e930526cda506310b0ce05c0f735472849868647f033d762404704
Contents?: true
Size: 1.96 KB
Versions: 1
Compression:
Stored size: 1.96 KB
Contents
#!/usr/bin/env ruby #CLI program to find IP geolocation require 'rest-client' require 'json' require 'optparse' options = {} OptionParser.new do |opts| opts.banner = "Usage: example.rb [options]" opts.on("-m", "--machine VARIABLE", "Machine Readable") do |v| options[:var] = v end end.parse! # Ex. ip opt = options[:var] # Ex. 8.8.8.8 *arg = ARGV if opt == nil && arg == nil puts print 'IP => ' ip = gets.chomp url = "http://ip-api.com/json/#{ip}" response = RestClient.get(url) info = JSON.parse(response) if info['status'] == 'fail' puts 'No IP found' else puts puts '=============================' puts "| IP: #{info['query']}" puts "| City: #{info['city']}" puts "| Region: #{info['region']}" puts "| Country: #{info['country']}" puts "| ZIP: #{info['zip']}" puts "| ISP: #{info['isp']}" puts '=============================' puts end elsif opt == nil && arg != nil url = "http://ip-api.com/json/#{arg.join}" response = RestClient.get(url) info = JSON.parse(response) if info['status'] == 'fail' puts 'No IP found' else puts puts '=============================' puts "| IP: #{info['query']}" puts "| City: #{info['city']}" puts "| Region: #{info['region']}" puts "| Country: #{info['country']}" puts "| ZIP: #{info['zip']}" puts "| ISP: #{info['isp']}" puts '=============================' puts end elsif opt != nil && arg != nil url = "http://ip-api.com/json/#{arg.join}" response = RestClient.get(url) info = JSON.parse(response) if info['status'] == 'fail' puts 'No IP info' else if opt == 'ip' puts info['query'] elsif opt == 'city' puts info['city'] elsif opt == 'region' puts info['region'] elsif opt == 'country' puts info['country'] elsif opt == 'zip' puts info['zip'] elsif opt == 'isp' puts info['isp'] else puts 'Bad input' end end else puts 'Bad input' end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
jake-scripts-1.8.2 | exe/ip_geo |