Ruby:如何映射IP地址与相关的国家



我想写一个命令行程序,它接受一个IP地址,并返回与之相关的国家。

例如:67.99.163.76将输出'United States'。

您可以使用geocode gem。它的特性非常丰富,并且对rails和其他基于机架的框架有很好的支持。当然,您也可以在这些框架之外使用它,既可以作为api,也可以从控制台使用。控制台的一个小示例:

geocode 67.99.163.76

纬度 : 42.7684

经度 : - 78.8871

详细地址:Buffalo, NY 14260, United States

城市 : 水牛

州/省:New York

邮编:14260

国家:美国

Google地图:http://maps.google.com/maps?q=42.7684,-78.8871

您可以通过查询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"]

最新更新