Socket.io握手地址值更改

时间:2015-06-24 20:55:35

标签: node.js socket.io

这很特别。 Socket.io版本~1.3

io.sockets.on('connection', function (socket) {
    console.log('Client connected from: ' + socket.handshake.address);
}

返回

  

客户端连接:: :: 1

然而

io.sockets.on('connection', function (socket) {
    console.log(socket.handshake);
    console.log('Client connected from: ' + socket.handshake.address);
}

返回

{ headers:
   { host: 'localhost:8000',
     connection: 'keep-alive',
     origin: 'http://localhost:3000',
     'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTM
L, like Gecko) Chrome/43.0.2357.130 Safari/537.36',
     accept: '*/*',
     dnt: '1',
     referer: 'http://localhost:3000/dev.html',
     'accept-encoding': 'gzip, deflate, sdch',
     'accept-language': 'en-US;q=0.8,en;q=0.6,ko;q=0.4,de;q=0.2,ru;q=0.2,fr;q=0.2,ja;q=0.2,it;q=0.2',
     cookie: 'io=yhyuAabou3GufhzNAAAA' },
  time: 'Wed Jun 24 2015 22:50:19 GMT+0200 (Central European Daylight Time)',
  address: '::ffff:127.0.0.1',
  xdomain: true,
  secure: false,
  issued: 1435179019584,
  url: '/socket.io/?EIO=3&transport=polling&t=1435179017804-3',
  query: { EIO: '3', transport: 'polling', t: '1435179017804-3' } }
Client connected from: ::ffff:127.0.0.1

为什么呢?是否有一些ES6代理?我想也许有一些奇怪的JS转换魔法已经到位,但它看起来并不像。

1 个答案:

答案 0 :(得分:2)

::ffff:127.0.0.1127.0.0.1的IPv6版本,::1是两者的IPv6快捷方式。

有关类似问题,请参阅Express.js req.ip is returning ::ffff:127.0.0.1