有没有办法在 IP 上执行 whois 以获取在 Node.js/Express 服务器中提供该 IP 的 ISP?
我已经获得了IP,我不是在寻找获取客户端IP的方法。
我已经找到了对发回 JSON 的付费服务的外部请求的方法,但我想找到一种本地方式。
你们知道什么可以帮助我吗?
编辑:我不是想建立一个 whois 服务器,我只需要我建立的应用程序来获取客户端的 ISP 名称。
您可以使用 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 );
}
});
这是一个实现 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);
});
唯一的问题是输出不是很好。
https://github.com/xreader/whois有很好的 JSON 输出。希望这可以帮助某人。