use*_*409 2 bind ip-address node.js
我想强制我的 Node js 应用程序通过特定接口或 IP 地址下载。
在 Linux 中,我可以使用 wget 来做到这一点:
wget --bind-address=192.168.21.21 http://example.com
Run Code Online (Sandbox Code Playgroud)
或与curl类似:
curl --interface 192.168.21.21 --ipv4 http://example.com
Run Code Online (Sandbox Code Playgroud)
我目前正在使用请求包,但我看不到类似的选项,如果需要的话可以对此进行更改。
如何将我的下载绑定到 IP 地址或带有 Node js 请求的接口?
编辑:我已经看到了评论中的问题,但它们似乎没有解决我如何根据请求执行此操作的问题,并且我没有使用expressjs,因为我的应用程序没有服务器/网络存在。
小智 5
我有同样的要求,事实证明这真的很容易做到。只需使用localAddress以下选项request(与模块中的选项相同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: '***.***.***.***' }) );
})();
Run Code Online (Sandbox Code Playgroud)
(替换***.***.***.***为您的新静态IP)
请注意,您当然需要设置静态 IP 并在操作系统中进行配置。如果它对任何人有帮助,使用 Ubuntu 16.04 你只需将其添加到文件末尾/etc/network/interfaces:
auto ens3:0
iface ens3:0 inet static
address ***.***.***.***
netmask 255.255.254.0
Run Code Online (Sandbox Code Playgroud)
(再次,替换***.***.***.***为您的 IP)更多详细信息请参见此处。
| 归档时间: |
|
| 查看次数: |
3808 次 |
| 最近记录: |