繁体   English   中英

node-request ip addres与远程ip地址不同

[英]node-request ip addres different from remote ip address

我有一个使用节点和请求的应用程序。 它运作良好,直到今天,我不知道为什么,但它停止工作。 我正在尝试对特定页面执行一个简单的request.get(),它向我发送一个超时错误,但是lib尝试访问的地址与远程地址不同。 由于某种原因,似乎节点请求没有将url转换为正确的ip。

请求电话:

request.get({
    url: 'http://www.website.to.request.com:8000/login.aspx',
    headers: headers,
}

节点错误消息:

address:"200.200.00.00"
code:"ETIMEDOUT"
 errno:"ETIMEDOUT"
message:"connect ETIMEDOUT 200.200.00.00:8000"
port:8000
stack:"Error: connect ETIMEDOUT 200.200.00.00:8000
    at Object.exports._errnoException (util.js:1022:11)
    at exports._exceptionWithHostPort (util.js:1045:20)
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1090:14)" syscall:"connect"

chrome调试中的请求:

Request URL:http://www.website.to.request.com:8000/login.aspx
Request Method:GET
Status Code:200 OK
Remote Address:201.11.11.111:8000
Referrer Policy:no-referrer-when-downgrade

注意:如果我尝试访问: 201.11.11.111:8000/login.aspx201.11.11.111:8000/login.aspx它可以工作,但200.200.00.00:8000不起作用。

如果我尝试使用https://www.hurl.it/获取页面内容并传递url和content-type也可以;

有人知道这个请求有什么问题吗?

您可以在requestjs调用之前尝试对DNS请求进行硬编码,然后您可以使用您获得的IP设置请求URL。

这是您可以用来执行DNS查找的API: https//nodejs.org/api/dns.html

请记住,你可以使用dns.setServers来硬编码一些dns服务器(谷歌DNS的['8.8.8.8','8.8.4.4'])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM