2012-04-01 28 views
0

私はnow.jsを使用していますが、localhostを参照するこの行があります。誰かが外部のサーバにアクセスするには、localhostを自分のコンピュータの現在の外部IPに変更する必要があります(私のipは動的です)。スクリプトから現在の外部IPを検出する方法はありますか?node.jsからサーバの外部IPを取得する方法

window.now = nowInitialize("//localhost:8081", {}); 

答えて

3

あなたは(それはフォーマットせずにそれを返すのでいいです)this oneのような外部のサービスを求めることができます。これは、この答えを無効に、既に一度起こっている - 外部サービスがダウンしたり変更することができますことを心に留めておいてください

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; 
}); 

それを使用するには、Node's built in http moduleを使用することができます。私はそれを更新しましたが、これは再び起こる可能性があります...

+0

どのように私はサイトから返されるIPを取得できますか? –

+0

@Kyoka:コードをいくつか追加しました。私の編集を参照してください。 – icktoofay

+0

これはもう動作しません。サイトはイメージにIPアドレスを表示します。 –

関連する問題