簡體   English   中英

在socket.io 1.4.5中獲取連接的IP

[英]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') { } }); }); 
當我運行此代碼時,雖然address.address未定義,並且與address.port相同。 那么當我使用1.4.5時應該如何獲取IP和端口? 我找不到任何新近更新的東西。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM