Ruby使用ipdata API获取IP地址信息

时间:2018-06-24 19:28:20

标签: ruby api

我正在尝试从红宝石IP地址中获取信息。我想要的两种主要信息类型是与之关联的国家/地区,以及是否为恶意信息。我发现唯一可以做到这一点的网站是:https://ipdata.co/docs.html,它提供了用于执行此操作的红宝石代码,但是作为红宝石的新手,我对此不太了解。如果我将ruby代码粘贴到文件中并运行它,则会收到错误消息:

`require':无法加载此类文件-rest_client(LoadError)

我不知道该rest_client文件是否存在(如果存在),我尝试到处寻找解决方案...也许我要做的就是安装某种gem?我也从他们的站点获得了API密钥,但是我看不到在哪里应用它。我尝试通过ipdata与人们联系,但是那个家伙告诉我的唯一一件事就是他不太了解ruby,也无济于事。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

通常,当您在Ruby脚本中看到require时,它是指一个gem。但是,他们的示例中有一个错误:应该是rest-client而不是rest_client

在这种情况下,您可以通过在Shell中运行以下命令来安装必要的rest-client gem:

gem install rest-client

关于API密钥,看着ipdata python implementation,我看到API密钥是作为另一个HTTP标头传递的。因此,修改其Ruby示例:

require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest-client'


headers = {
  :accept => 'application/json',
  :api_key => 'YOUR API KEY FROM IPDATA GOES HERE'
}

response = RestClient.get('https://api.ipdata.co/8.8.8.8/', headers)

puts response