2016-12-17 8 views
1

ノードjsアプリケーションを特定のインターフェースまたはIPアドレスを介して強制的にダウンロードしたいとします。ノードjs異なるインターフェースまたはIPアドレスへのバインド要求

私はこのようなものでこれを行うことができますwgetの上でLinuxの

:私は現在、requestパッケージを使用していますが、私が見ることができない

curl --interface 192.168.21.21 --ipv4 http://example.com 

:カールと

wget --bind-address=192.168.21.21 http://example.com 

または同様に私がしなければならない場合、これと同様のオプションを変更することができます。

ノードjs要求でIPアドレスまたはインターフェイスにダウンロードをバインドする方法はありますか。

編集:私はコメントの質問を見たことがありますが、リクエストでこれを行う方法に関する私の質問に対処していないようだし、私のアプリにはサーバー/ウェブの存在がないのでexpressjを使用していない。

+1

私はあなたがこのSOの質問に言及していると信じています。http://stackoverflow.com/questions/9986220/bind-expressjs-to-a-specific-ip-address –

+1

[作成時にネットワークインターフェイスを指定する方法Node.jsからのネットリクエスト?](http://stackoverflow.com/questions/13602066/how-to-specify-a-network-interface-when-making-net-requests-from-node-js) – Tomalak

+1

をご覧ください私の編集では、node.jsリクエストで解決策を探しています。私の質問にBarry Dickの言葉で答えると、私はそれをどのように実装するのか不明です。 – user1464409

答えて

0

私は同じ要件を満たしていて、それは本当に簡単です。

(async() => { 

    let request = require('request-promise-native'); // (a promisified version of request module) 

    // This prints your machine's IP 
    console.log(await request({ uri: 'https://api.ipify.org' })); 

    // This prints '***.***.***.***' 
    console.log(await request({ uri: 'https://api.ipify.org', localAddress: '***.***.***.***' })); 

})(); 

(新しい静的IPで***.***.***.***を交換してください)あなたはもちろん、すでに設定されている必要があります

注:ちょうどrequestlocalAddressオプションを(それがhttpモジュールと同じオプションです)を使用しますあなたのスタティックIPを立ち上げ、あなたのOSでそれを設定してください。詳細here

auto ens3:0 
iface ens3:0 inet static 
    address ***.***.***.*** 
    netmask 255.255.254.0 

(繰り返しますが、あなたのIPと***.***.***.***を置き換える):ケースでは、あなたは自分の/etc/network/interfacesファイルの最後に以下を追加したいのUbuntu 16.04で、誰にも役立ちます。

関連する問題