2011-12-21 6 views
5

क्या PHP में एनएटी के पीछे आईपी पुनर्प्राप्त करना संभव है? मैं ग्राहक के आईपी पते प्राप्त करने के लिए $_SERVER["REMOTE_ADDR"] का उपयोग कर रहा हूं। यह क्लाइंट का सटीक आईपी पता नहीं दे रहा है जो एनएटी के पीछे है।php का उपयोग करके एनएटी के पीछे आईपी कैसे प्राप्त करें?

+1

आप क्यों चाहते हैं? – Devraj

उत्तर

3

नहीं, संभव नहीं है। एनएटी का मतलब नेटवर्क पता अनुवाद - पैकेट का आईपी पता एनएटी डिवाइस पर फिर से लिखा गया है, इसलिए सार्वजनिक आईपी पता केवल एक ही है, जहां तक ​​आपका सर्वर जानता है।

हालांकि, आप कुछ चालें नियोजित कर सकते हैं - जैसे जावा एप्लेट का उपयोग कर आंतरिक आईपी पते की जांच करना। देखें: Get the correct local IP address from java applet

+0

(मुझे यकीन नहीं है कि आपको आंतरिक आईपी पते की आवश्यकता होगी, और ध्यान दें कि कई नेस्टेड एनएटी संभव हैं - ताकि एक कंप्यूटर देखा जा सके जैसे कि नेटवर्क टोपोलॉजी के आधार पर 1 9 2.168.0.153, 10.53.0.1, 1 9 2.168.42.12 और 1.2.3.4) – Piskvor

+0

मुझे नेटवर्क के नजदीक सिस्टम का पता लगाने के लिए आंतरिक आईपी की आवश्यकता है। यहां वे नेटवर्क के लिए कई एनएटी का उपयोग कर रहे हैं। –

+0

इस एप्लेट कोड को आजमाएगा ... –

4

HTTP और php का उपयोग करके एनएटी के पीछे आईपी प्राप्त करना संभव नहीं है।

+0

ठीक है ... धन्यवाद ..... –

2

नहीं। PHP केवल बाहरी आईपी देखता है।

'REMOTE_ADDR' आईपी पता जिस से उपयोगकर्ता वर्तमान पृष्ठ देख रहा है।

2

अगर वे प्रॉक्सी का प्रयोग कर रहे हैं आप

 $real_ip = $_SERVER['HTTP_X_FORWARDED_FOR'] 

अन्यथा उपयोग कर सकते हैं, यह

+0

अच्छा बिंदु; लेकिन ज्यादातर एनएटी सेटअप में, यह मामला नहीं है। – Piskvor

+0

$ real_ip = $ _SERVER ['HTTP_X_FORWARDED_FOR'] प्रॉक्सी पहचान के लिए सही उपयोग किया जाता है? –

+0

क्या आप कृपया http://en.wikipedia.org/wiki/X-forwarded- – mustafa

0

आप ग्राहक के निजी पते नहीं देख सकते हैं संभव नहीं है और आम तौर पर आप को देखने के लिए परवाह नहीं है यह बेकार है कि आप उस तक नहीं पहुंच सकते हैं। यहां तक ​​कि अगर यह प्रॉक्सी का उपयोग करता है, तो कभी-कभी आपको पता हो सकता है:

$_SERVER['HTTP_X_FORWARDED_FOR'] 
+0

ठीक से जांच सकते हैं ... लेकिन यह प्रॉक्सी पहचान के लिए सही है? –

संबंधित मुद्दे