[英]Get IP of connection in socket.io 1.4.5
我想知道如何在用戶連接到socket.io服務器時獲取其IP。 我嘗試使用此代碼來記錄連接地址和端口,如下所示:
var io = require('socket.io')(serv, {}); io.sockets.on('connection', function(socket) { var address = socket.handshake.address; console.log('New connection from ' + address.address + ':' + address.port); socket.on('request', function(data) { console.log('Request Sent') length = data.length if (data.request == 'sessionID') { socket.emit('sendSessionID', { id: generateSessionID(length) }); console.log('Sent session ID') } if (data.request == 'players') { } }); });
IP地址位於socket.handshake.address
,而不是socket.handshake.address.address
。
盡管在socket.io中似乎都沒有記錄這些內容,但是您可以使用以下命令獲取遠程IP地址和遠程端口:
socket.request.connection.remoteAddress
socket.request.connection.remotePort
當我從局域網上的另一台計算機連接到socket.io服務器時,我從以上兩個設置中看到了這些輸出:
::ffff:192.168.1.56
51210
這正確地為您提供了連接到服務器的遠程計算機的IP地址和端口。 IP地址::ffff:192.168.1.56
是IPv4映射的地址。 在某些系統上,您將必須處理該地址形式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.