繁体   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