1

我想编写一个接受 IP 地址并返回与之关联的国家/地区的命令行程序。

例如:67.99.163.76 将输出“美国”。

4

1 回答 1

1

您可以使用地理编码 gem。它的功能非常丰富,并且对 Rails 和其他基于机架的框架有很好的支持。当然,您也可以在这些框架之外使用它作为 api 和控制台。来自控制台的一个小样本:

geocode 67.99.163.76

纬度:42.7684

经度:-78.8871

完整地址:Buffalo, NY 14260, United States

城市:布法罗

州/省:纽约

邮政编码:14260

国家:美国

谷歌地图: 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"]
于 2013-05-23T10:00:33.120 回答