在我socket.io代碼使用代理,沒有得到遠程地址,而在socket.io
socket.sockets.on('connection', function(client){
var ip = client.handshake.address.address;
..
}
IP總是返回127.0.0.1,這是因爲服務器坐在後面的代理。 如何正確獲取遠程地址?
編輯:我使用HTTP代理
在我socket.io代碼使用代理,沒有得到遠程地址,而在socket.io
socket.sockets.on('connection', function(client){
var ip = client.handshake.address.address;
..
}
IP總是返回127.0.0.1,這是因爲服務器坐在後面的代理。 如何正確獲取遠程地址?
編輯:我使用HTTP代理
沒錯,這是爲我工作。
client.handshake.headers['x-forwarded-for'] || client.handshake.address.address;
我正確地獲得遠程IP地址,而不是127.0.0.1
確認:這是自Google發現的最後10個答案以來的第一個工作解決方案。 – DanFromGermany
這不適合我。我在網絡服務器/代理服務器後面,使用1.3.2 – Rachael
這個只適用於套接字0.9。對於版本> 1.0的情況如何? –
在版> 1.0,語法是相似的:
socket.handshake.headers['x-forwarded-for'] || socket.request.connection.remoteAddress;
察看client.handshake.headers ['X -forwarded-for'] || client.handshake.address.address;將工作。 – user644745