2010-12-12 20 views
16

मैं एक वेबसाइट पर काम कर रहा हूं, और उन चीजों में से एक जो मैं करना चाहता हूं वह उपयोगकर्ताओं को मेरा आईपी पता प्रदर्शित करता है। वेबसाइट CodeIgniter के साथ बनाई गई है, इसलिए मैं PHP के साथ अपना सर्वर आईपी ढूंढ रहा था। आईपी ​​पता बदल सकता है (यह एक रोमर है), इसलिए मैं इसे गतिशील रूप से ढूंढना चाहता हूं, न केवल कठिन कोड।PHP डिस्प्ले सर्वर आईपी पता

$data['hostname'] = NULL; 
$data['ip'] = NULL; 
$var = gethostname(); 
if ($var === FALSE) { 
    $var = NULL; 
} else { 
    $data['hostname'] = $var; 
    $data['ip'] = gethostbyname($var); 
} 

हालांकि, मुझे होस्ट का नाम और आईपी देने के बजाय, मुझे मिल गया:: मैं इस कोशिश की "मोरिया" और "127.0.1.1"। काफी कुछ नहीं जो मैं ढूंढ रहा हूं। इसके बजाय, इसे होस्टनाम के लिए "Moria.student.rit.edu" और आईपी पता के लिए कहना चाहिए। कोई मदद?

उत्तर

44

$_SERVER['SERVER_ADDR'] आज़माएं। यह आईपी पता होगा जो सर्वर सुन रहा है। होस्ट नाम प्राप्त करने के लिए आप DNS फ़ंक्शंस (उदा।, gethostbyaddr()) का उपयोग कर सकते हैं।

http://www.php.net/manual/en/reserved.variables.server.php देखें।

+0

Omg, यह काम किया। धन्यवाद! –

-5

अपने laravel आवेदन एक आंतरिक सर्वर पर चल रहा है, तो आप सर्वर बाहरी पता पाने के लिए निम्न का उपयोग कर सकते हैं:

$external_ip = exec('curl http://ipecho.net/plain; echo'); 
+2

बुराई, बुरा और गलत। यह कोड बहुत खराब है और उत्पादन में कभी भी इसका इस्तेमाल नहीं किया जाना चाहिए। आपको आंतरिक PHP कर्ल लाइब्रेरी का उपयोग करना चाहिए। यह एक खोल को बढ़ाने के लिए http प्रक्रिया को फेंकने से बचाता है। कौन जानता है कि पथ में 'कर्ल' है या नहीं? 'Echo' के लिए क्या है? किसी भी घटना में, आपके संगठन के परिधि के बाहर किसी वेब सर्वर को कभी अनुमति नहीं दी जानी चाहिए। यदि इसे करना है, तो इसे एक आंतरिक प्रॉक्सी से गुजरना चाहिए। – dland

+2

इस पूरे पृष्ठ पर लार्वेल का एक भी उल्लेख मौजूद नहीं है, आपका स्वीकार करें। -1 – TheBlackBenzKid

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