javascript - Node 请求IP地址与远程IP地址不同

标签 javascript node.js request node-request

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

请求通话:

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

Node 错误消息:

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,它可以工作,但使用 200.200.00.00:8000 则不起作用。

如果我尝试使用 https://www.hurl.it/ 获取页面内容传递 url 和内容类型也有效;

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

最佳答案

您可以尝试在 requestjs 调用之前硬编码 DNS 请求,然后您可以使用返回的 ip 设置请求 url。

这是可用于执行 DNS 查找的 api: https://nodejs.org/api/dns.html

请记住,您可以使用 dns.setServers 对某些 dns 服务器进行硬编码(['8.8.8.8', '8.8.4.4'] 对于 google DNS)

关于javascript - Node 请求IP地址与远程IP地址不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43147087/

相关文章:

javascript - 我无法使用请求 promise 发布

node.js - nodejs https#request 在相同的 curl 请求成功的地方失败

node.js - 使用 Request 的请求函数时,Github API 以 403 响应

javascript - 了解 Firebase 应用初始化的安全性

javascript - 在 Web 应用程序中从网络摄像头或移动相机拍摄照片

javascript - 动态选择菜单在更改事件后不起作用

node.js - 如何 npm install 只保存对 package.json 的依赖?

javascript - 尝试通过 app.yaml 上传静态 .mp3 文件时 Google App Engine 失败

node.js - 处理 Vue 项目中的多个套接字

mysql - 如何访问 RowDataPacket 对象