Javascript 节点HTTP解析
因此,您可以像这样发出节点HTTP GET请求:Javascript 节点HTTP解析,javascript,node.js,http,dns,request,Javascript,Node.js,Http,Dns,Request,因此,您可以像这样发出节点HTTP GET请求: var http = require('http'); var options = { host: 'stackoverflow.com', }; var req = http.get(options, function(res) { console.log('STATUS: ' + res.statusCode); console.log('HEADERS: ' + JSON.stringify(res.headers)); })
var http = require('http');
var options = {
host: 'stackoverflow.com',
};
var req = http.get(options, function(res) {
console.log('STATUS: ' + res.statusCode);
console.log('HEADERS: ' + JSON.stringify(res.headers));
});
req.on('error', function(e) {
console.log('ERROR: ' + e.message);
});
我想看看http.get
将要使用的IP地址是什么?如果给定的DNS解析为多个IP,节点HTTP库如何确定要使用的IP地址
我所说的多个IP是指:
dig +short stackoverflow.com
151.101.129.69
151.101.1.69
151.101.193.69
151.101.65.6
库是否有所不同?据我所知,节点6.x.x中的库也有不同:
非常简单的算法,如:“如果存在多个IP地址,请先取一个”:您的
req
对象上应该有一个连接
对象,该对象将具有您连接到的服务器的远程地址
req.connection.remoteAddress
当然,您需要等待,直到您真正建立了连接,所以我将只使用connect
事件,它包含您需要的内容。未经测试,但请尝试以下方法:
req.on('connect', (res, socket, head) => {
console.log(socket.remoteAddress);
});
您所说的“DNS解析到多个IP”是什么意思?但这并不能解决问题。多个DNS查找可能导致不同的响应。谢谢!消息来源解释了很多。这是一个糟糕的算法:(谢谢你,这很有帮助。