0

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

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

1 に答える 1

3

このような外部サービスに問い合わせることができます(フォーマットせずに返すので、これは便利です)。

それを使用するには、 Node の組み込みhttpモジュールを使用できます。

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

外部サービスは停止または変更される可能性があることに注意してください。これはすでに一度発生しているため、この回答は無効です。更新しましたが、これは再び発生する可能性があります…</p>

于 2012-04-01T05:44:18.393 に答える