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

时间:2013-05-23 09:42:55

标签: ruby console-application

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

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

1 个答案:

答案 0 :(得分:1)

您可以使用geocode gem。它功能非常丰富,并且对rails和其他基于机架的框架提供了很好的支持。你也可以在这些框架之外使用它作为api和来自控制台的 。来自控制台的一小部分样本:

geocode 67.99.163.76
  

纬度:42.7684

     经度:-78.8871

     

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

     

城市:布法罗

     州/省:纽约

     

邮政编码: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"]