嗨我有问题在socket.io版本1.3.7中获取客户端IP地址之前更新其工作完美但在更新后我得到每次undefined这是我的代码,我在更新前使用
这是我的服务器端代码
sockets.on('connection',function(sock){
var address = sock.handshake.address;
这从客户端发送ip地址
var remote = 'http://my_ip_address:9008/';
socket = io.connect(!!local ? local : remote);
socket.on("connect", function () {
console.log("connected");
getData();
});
更新后它无法在socket.io版本1.3.7中工作所以请帮助我解决这个问题并建议1.3.7版本的完美代码
答案 0 :(得分:2)
我对插座不太满意,但我想这会对你有帮助。
您需要使用 address.address
和端口 address.port
sockets.on('connection',function(sock){
var address = sock.handshake.address;
console.log('New connection from ' + address.address + ':' + address.port);
});
对于Socket.io ver 1.0 服务器端:
sockets.on('connection',function(sock){
var clientIpAddress = sock.request.headers['x-forwarded-for'] || sock.request.connection.remoteAddress;
console.log(' new request from : '+clientIpAddress);
});
答案 1 :(得分:0)
这是我的做法,截至2019年2月20日:
let ip = _.has(socket.handshake.address, 'address')
? socket.handshake.address.address
: socket.handshake.address;
if (ip === "127.0.0.1") {
ip = _.has(socket.handshake.headers, 'x-real-ip')
? socket.handshake.headers['x-real-ip']
: socket.handshake.headers['x-forwarded-for'];
}
在lodash
的{{3}}