2012-06-25 14 views
9

मेरी socket.io कोड में प्रॉक्सी का उपयोग करते समय,नहीं दूरदराज के पते हो रही socket.io

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

आईपी हमेशा 127.0.0.1 वापस आती है और इस वजह से सर्वर एक प्रॉक्सी के पीछे बैठता है। मुझे दूरस्थ पता कैसे ठीक से मिल सकता है?

संपादित करें: मैं http-प्रॉक्सी का उपयोग कर रहा

+0

जांचना कि client.handshake.headers [ 'एक्स फॉरवर्ड-फॉर '] || client.handshake.address.address; काम करेगा। – user644745

उत्तर

22

हाँ, यह मेरे लिए काम कर रहा है।

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

मैं ठीक से दूरदराज के आईपी पते और नहीं 127.0.0.1

+3

पुष्टि की गई: Google द्वारा प्राप्त पिछले 10 उत्तरों के बाद यह पहला कामकाजी समाधान है। – DanFromGermany

+0

यह मेरे लिए काम नहीं किया। मैं 1.3.2 – Rachael

+0

का उपयोग कर नेटवर्क नेटवर्क/प्रॉक्सी के पीछे हूं, यह केवल सॉकेट 0.9 के लिए काम करता है। संस्करण> 1.0 के बारे में कैसे? –

4

संस्करण> 1.0 में हो रही है, वाक्य रचना समान है:

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