0
我使用now.js,並且有一行指向localhost。爲了讓某人訪問外部服務器,我需要將localhost修改爲我的計算機的當前外部IP(我的IP是動態的)。有沒有辦法從腳本中檢測當前的外部IP?如何從node.js獲得服務器的外部ip
window.now = nowInitialize("//localhost:8081", {});
我使用now.js,並且有一行指向localhost。爲了讓某人訪問外部服務器,我需要將localhost修改爲我的計算機的當前外部IP(我的IP是動態的)。有沒有辦法從腳本中檢測當前的外部IP?如何從node.js獲得服務器的外部ip
window.now = nowInitialize("//localhost:8081", {});
你可以問一個外部服務,如this one(這很好,因爲它沒有格式化就返回它)。
要使用它,你可以使用Node's built in http
module:
require('http').request({
hostname: 'fugal.org',
path: '/ip.cgi',
agent: false
}, function(res) {
if(res.statusCode != 200) {
throw new Error('non-OK status: ' + res.statusCode);
}
res.setEncoding('utf-8');
var ipAddress = '';
res.on('data', function(chunk) { ipAddress += chunk; });
res.on('end', function() {
// ipAddress contains the external IP address
});
}).on('error', function(err) {
throw err;
});
請記住,外部服務可以去或改變 - 這已經發生過一次了,這種無效答案。我已經更新了,但是這可能會再次發生...
我該如何獲得從網站返回的IP? – 2012-04-01 07:33:35
@Kyoka:我添加了一些代碼。看我的編輯。 – icktoofay 2012-04-01 21:09:38
這將不再工作,該網站現在顯示圖像中的IP地址。 – 2013-07-29 04:46:44