有沒有一種方法可以在IP上執行Whois以獲取在Node.js/Express服務器中提供該IP的ISP?在node.js中獲取IP的ISP
我已經得到了IP,我沒有找到獲得客戶IP的方法。
我已經找到了發送回JSON的付費服務的外部請求方式,但我想找到一種本地方式。
你們知道什麼可以幫助我嗎?
編輯:我沒有試圖建立一個whois服務器,我只是需要我建立的應用程序來獲取客戶端的ISP名稱。
有沒有一種方法可以在IP上執行Whois以獲取在Node.js/Express服務器中提供該IP的ISP?在node.js中獲取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);
}
});
你可以添加一個鏈接到衛星npm模塊。會好的。 – Walter 2017-01-10 22:27:46
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);
});
唯一的問題是,輸出不是很好看。
您是否嘗試將IP號碼傳給它? – robertklep 2013-05-14 12:58:58
@robertklep謝謝你指出。修正了我的答案。 – adrianp 2013-05-14 13:13:28
您的更新解決方案的問題是,它可以引用其他需要搜索的WHOIS服務器,以獲取IP號碼分配給的實際ISP(通過ReferralServer屬性)。 – robertklep 2013-05-14 13:21:20
https://github.com/xreader/whois有很好的JSON輸出。希望這有助於某人。
你是說你想在node.js中實現whois客戶端嗎? – booyaa 2013-05-14 11:28:06
根本不是。我想用一個。 – brnrd 2013-05-14 12:05:35
你的意思是使用免費的現有服務? – booyaa 2013-05-14 12:50:14