आपकी साइट पर आने वाले आगंतुक के आईपी पते से, आप उसके बारे में बहुत कुछ जान सकते हैं - देश, शहर, इंटरनेट प्रदाता का नाम और ईमेल पता आदि। लेकिन मुख्य मूल्य यह है कि आईपी सर्वर-साइड स्क्रिप्ट के लिए विज़िटर आईडी के रूप में कार्य कर सकता है। नीचे बताया गया है कि आप PHP का उपयोग करके IP पता कैसे निर्धारित कर सकते हैं।
यह आवश्यक है
PHP का बुनियादी ज्ञान
अनुदेश
चरण 1
ब्राउज़र अनुरोध सर्वर को भेजे गए हेडर से आईपी पता निकालने के लिए, getenv फ़ंक्शन का उपयोग करें। यह पर्यावरण चर से इसके लिए निर्दिष्ट मूल्यों को पढ़ता है। REMOTE_ADDR नाम के वेरिएबल का उपयोग विज़िटर के IP पते को संग्रहीत करने के लिए किया जाता है। हालाँकि, क्लाइंट एक प्रॉक्सी सर्वर का उपयोग कर सकता है, इस स्थिति में चर में उसका पता होगा, न कि वह जो आप चाहते हैं। आप HTTP_VIA नामक पर्यावरण चर को देखकर पता लगा सकते हैं कि वेब सर्फर एक मध्यवर्ती IP का उपयोग कर रहा है। श्रृंखला में शामिल प्रॉक्सी सर्वर के सभी पते अल्पविराम द्वारा अलग किए गए इसमें रखे गए हैं। मध्यवर्ती सर्वरों को आगंतुक के पते को HTTP_X_FORWARDED_FOR नामक चर में रखना चाहिए, लेकिन यह पूरी तरह से प्रॉक्सी सेटिंग्स पर निर्भर करता है। इसका मतलब यह है कि आईपी पते को निर्धारित करने की अधिक से अधिक संभावनाओं को कवर करने के लिए, आपको कम से कम तीन चर की सामग्री की जांच करने की आवश्यकता है: REMOTE_ADDR, HTTP_X_FORWARDED_FOR, और अधिमानतः
चरण दो
आप सभी तीन चरों की जाँच को PHP कोड की एक पंक्ति में जोड़ सकते हैं, उदाहरण के लिए, इस तरह:
$ ipAddr = getenv ('HTTP_CLIENT_IP') या $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') या $ ipAddr = getenv ('REMOTE_ADDR');
इस तरह से आईपी पते का मूल्य प्राप्त करने के बाद, इसे संभावित विकृतियों और अनावश्यक वर्णों से साफ़ करने की सलाह दी जाती है। आप इसके लिए नियमित अभिव्यक्ति का उपयोग कर सकते हैं:
$ ipAddr = ट्रिम (preg_replace ('# ^ ([^,] +) (,। *)? #', '$ 1', $ ipAddr));
चरण 3
यह कोड की दोनों पंक्तियों को एक फ़ंक्शन में संयोजित करने के लिए बनी हुई है:
फ़ंक्शन गेटआईपी () {
$ ipAddr = getenv ('HTTP_CLIENT_IP') या $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') या $ ipAddr = getenv ('REMOTE_ADDR');
वापसी ट्रिम (preg_replace ('# ^ ([^,] +) (,। *)? #', '$ 1', $ ipAddr));
}