在node.js中获取IP的ISP

时间:2013-05-14 10:46:12

标签: json node.js express whois

有没有办法在IP上执行whois以获取在Node.js / Express服务器中提供该IP的ISP?

我已经获得了IP,我不是在寻找获取客户端IP的方法。

我已经找到了对发送回JSON的付费服务的外部请求的方法,但我想找到一种本地方式。

你们有什么可以帮助我的吗?

编辑:我不是要构建一个whois服务器,我只需要构建的应用程序来获取客户端的ISP名称。

3 个答案:

答案 0 :(得分:8)

您可以使用node-whois模块获取ISP信息,但在其响应中,访问特定密钥的值非常复杂。所以还有另一种方法是你可以使用卫星模块,这个模块可以提供快速响应和响应以json格式提供,这样你就可以轻松访问任何键值。 这是代码。

var satelize = require('satelize');
var ExternalIP = "173.194.70.100"; // I asume that, you already have external(public)IP
satelize.satelize({ip: ExtenalIP}, function(err, geoData) 
{

     if(err){
        console.log(" Error in retriving ISP Information");  
     }
     else
     {
        console.log("ISP Information for "+ ExternalIP+" :"+geoData );
     }
});

答案 1 :(得分:6)

This是一个实现whois客户端的Node.js模块。

正如@robertklep正确指出的那样,上述模块不适用于IP地址。不过,node-whois确实(我这次亲自测试了代码):

"use strict";

var whois = require('node-whois');

whois.lookup('173.194.70.100', function(err, data) {
  console.log(err, data);
});

唯一的问题是输出效果不是很好。

答案 2 :(得分:4)

https://github.com/xreader/whois有很好的JSON输出。希望这有助于某人。