我想写一个接受IP地址的命令行程序,然后返回 与之相关的国家。
例如:67.99.163.76将输出'United States'。
答案 0 :(得分:1)
您可以使用geocode gem。它功能非常丰富,并且对rails和其他基于机架的框架提供了很好的支持。你也可以在这些框架之外使用它作为api和来自控制台的 。来自控制台的一小部分样本:
geocode 67.99.163.76
纬度:42.7684
经度:-78.8871完整地址:Buffalo,NY 14260,United States
城市:布法罗
州/省:纽约邮政编码:14260
国家:美国
你可以通过查询freegeoip来使用标准库以外的任何东西:
require 'net/http'
require 'json'
ip = "67.99.163.76"
uri = URI.parse("http://freegeoip.net/json/#{ip}")
client = Net::HTTP.new(uri.host, uri.port)
res = JSON.parse(client.get(uri.request_uri).body)
puts res["country_name"]