[英]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.aspx
: 201.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.