私はnode.jsを使用しており、ISPから提供された外部IPアドレスを取得する必要があります。 http://myexternalip.com/rawのようなサービスを使用せずにこれを達成する方法はありますか?node.jsで外部IPアドレスを取得する方法は?
答えて
使用externalip
パッケージ
https://github.com/alsotang/externalip
externalip(function (err, ip) {
console.log(ip); // => 8.8.8.8
});
編集:これは2013年に書かれました...サイトはなくなりました。誰かが苦情を言わずに受け入れられた答えに行くのでない限り、私は今、サンプルリクエストコードを残しています。
か、
require('http').request({
hostname: 'fugal.net',
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;
}).end();
参考することができますhttp://www.nodejs.org/api/http.html#http_http_request_options_callback
あなたはnurl
ライブラリコマンドを使用することができますippublic
これを得るために。 (情報開示:私はnurlを作った)
> npm install nurl-cli -g
> ippublic;
// 50.240.33.6
私の恥知らずなプラグ:canihazip(開示:私はモジュールの作者だけど、しないメインページの。)
それはとして必要とすることができますオプションでコールバック関数を渡すことができる単一の関数を公開すると、それは約束を返します。
グローバルにインストールしてCLIとして使用することもできます。
彼らは、外部IPを取得し、いくつかのWebサイトに接続し、ソケット接続から、あなたの詳細を取得するために、Pythonで何をするかと同じ操作を行うことができます。
const net = require('net');
const client = net.connect({port: 80, host:"google.com"},() => {
console.log('MyIP='+client.localAddress);
console.log('MyPORT='+client.localPort);
});
*残念ながら参考としてもう元のPythonの例を見つけることができません..
これは私のために外部IPを出力しません – pixelfreak
@pixelfreakどのノードのバージョンですか? v4.4.5を使用して私のために動作します – mgear
は単にたSuperAgentを使用
var superagent = require('superagent');
var getip = function() {
superagent
.get('http://ip.cn/')
.set('User-Agent', 'curl/7.37.1')
.end(function (err, res) {
if (err) {
console.log(err);
}
var ip = res.text.match(/\d+\.\d+\.\d+\.\d+/)[0];
console.log(ip)
// Here is the result
});
};
これはipifyの例外を除いて(任意の外部依存せずにうまく動作するはずです。ORG):
var https = require('https');
var callback = function(err, ip){
if(err){
return console.log(err);
}
console.log('Our public IP is', ip);
// do something here with the IP address
};
https.get({
host: 'api.ipify.org',
}, function(response) {
var ip = '';
response.on('data', function(d) {
ip += d;
});
response.on('end', function() {
if(ip){
callback(null, ip);
} else {
callback('could not get public ip address :(');
}
});
});
もうちょっとノードモジュールがext-ip
でGET使用することができます。違いは、コーディングスタイルに合った異なる応答オプションを使用できることです。それは...
約束
let extIP = require('ext-ip')();
extIP.get().then(ip => {
console.log(ip);
})
.catch(err => {
console.error(err);
});
イベント
let extIP = require('ext-ip')();
extIP.on("ip", ip => {
console.log(ip);
});
extIP.on("err", err => {
console.error(err);
});
extIP();
コールバック
let extIP = require('ext-ip')();
extIP((err, ip) => {
if(err){
throw err;
}
console.log(ip);
});
- 1. node.jsからサーバの外部IPを取得する方法
- 2. POSIX Cで独自の外部IPアドレスを取得する
- 3. IPアドレスの取得方法
- 4. node.js Webサーバーの外部リモートIPアドレスを取得する方法 - たとえば、いくつかのページstackoverflow.com?
- 5. 人形のテンプレートのエージェントの外部IPアドレスを取得する方法
- 6. Azure関数のnode.jsでクライアントのIPアドレスを取得する方法は?
- 7. node.jsでボット内のユーザーのIPアドレスを取得する方法は?
- 8. Symfony2 - 外部(公開)IPと内部(ローカル)IPを取得する方法は?
- 9. タイムアウトエラー外部IPアドレス
- 10. cの関数で外部IPアドレスを取得
- 11. Node.jsでクライアントとサーバのIPアドレスとポート番号を取得する方法
- 12. Delphiで外部(公開)IPを取得する方法
- 13. WebサービスでIPアドレスを取得する方法は?
- 14. JBossリモートEJBコールでクライアントIPアドレスを取得する方法は?
- 15. JavaScriptでクライアントのIPアドレスを取得する方法は?
- 16. asp.netコアでリモートクライアントのIPアドレスを取得する方法は?
- 17. MeteorjsでIPアドレスを取得する方法は?
- 18. ホスト名でIPアドレスを取得する方法は?
- 19. Javaでクライアントの元のIPアドレスを取得する方法は?
- 20. LaravelでユーザーのIPアドレスを取得する方法は?
- 21. アンドロイドでIPアドレスのホスト名を取得する方法は?
- 22. プログラムでパブリックIPアドレスを取得する方法は?
- 23. AndroidでプログラムでMacアドレスからIPアドレスを取得する方法は?
- 24. 取得IPアドレス
- 25. 取得IPアドレス
- 26. ホスト名/ IPアドレスのCNAME取得方法
- 27. ドッキング用のコンテナ内から外部ホストのIPアドレスを取得するには
- 28. 外部IPアドレスをブロックする
- 29. IPアドレスを取得
- 30. WLANのIPアドレスを取得する方法は?
ないあなたがNAT – Xophmeister
後ろにいる場合、私はこれを推測箱から出して使用する準備ができています私の場合です。私のラップトップIPは192.168.1.3、私のWiFiルーターは192.168.1.1、ISPから提供された私のモデムIPは201.15.1XX.XXXです。私はちょうど最後のものを手に入れたいです。 – fonini
は、ノードまたはいずれかの言語に固有ではありません。これはネットワークルーティングに関する質問であり、接続することなくホストから最終的に決定することはできません。 – Joe