簡體   English   中英

Node JS將請求綁定到其他接口或IP地址

[英]Node js bind request to different interface or IP address

我想強制我的節點js應用程序通過特定的接口或IP地址下載。

在具有wget的Linux中,我可以使用以下方法進行此操作:

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

或類似地卷曲:

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

我目前正在使用請求包,但看不到類似的選項,如果必須的話可以從中進行更改。

如何將下載的文件綁定到具有Node js請求的IP地址或接口?

編輯:我已經在評論中看到了問題,但是它們似乎並沒有解決我如何在請求中執行此操作的問題,並且我沒有使用expressjs,因為我的應用程序沒有服務器/網站。

我有同樣的要求,事實證明這確實很容易。 只需在request使用localAddress選項(與http模塊中的選項相同):

(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替換***.***.***.***

請注意,您當然需要已經設置了靜態IP並已在操作系統中對其進行了配置。 如果它對任何人都有幫助,那么使用Ubuntu 16.04只需將其添加到/etc/network/interfaces文件的末尾即可:

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

(再次,用您的IP替換***.***.***.***在此處更多詳細信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM