2012-06-25 4 views
9

In meinem socket.io Code,Nicht immer Remote-Adresse, während Proxy in Socket.io

socket.sockets.on('connection', function(client){ 
    var ip = client.handshake.address.address; 
    .. 
} 

ip immer 127.0.0.1 gibt, und das ist, weil der Server hinter einem Proxy sitzt. Wie bekomme ich die Remote-Adresse richtig?

Edit: Ich bin mit http-Proxy

+0

prüft client.handshake.headers [ 'x -forwarded-for '] || client.handshake.adresse.adresse; wird funktionieren. – user644745

Antwort

22

ja, das für mich arbeitet.

client.handshake.headers['x-forwarded-for'] || client.handshake.address.address; 

Ich bin richtig die Remote-IP-Adresse bekommen und 127.0.0.1 nicht

+3

Bestätigt: Dies ist die erste funktionierende Lösung seit den letzten 10 Antworten, die ich bei Google gefunden habe. – DanFromGermany

+0

das hat bei mir nicht funktioniert. Ich bin auf einem Netzwerk-Server/hinter Proxy, mit 1.3.2 – Rachael

+0

dieser nur für Socket 0.9 arbeiten. Wie wäre es mit Version> 1.0? –

4

In Version> 1.0, die Syntax ist ähnlich:

socket.handshake.headers['x-forwarded-for'] || socket.request.connection.remoteAddress; 
Verwandte Themen