2011-01-01 3071 views
8

पर चलने पर यह पता लगाने के लिए कि मेरे पास एक PHP स्क्रिप्ट है जहां मैं यह जानना चाहता हूं कि उपयोगकर्ता स्थानीय मशीन पर चल रहा है या नहीं, इंटरनेट पर उपलब्ध नहीं है। वर्तमान में मैं 127.0.0.1 को सर्वर पते की जांच करता हूं। क्या यह सबसे अच्छा अभ्यास है या क्या कोई बेहतर तरीका है?स्थानीयहोस्ट

+0

यह सामान्य अभ्यास हां है, या विंडोज 7 में आईपीवी 6 ':: 1' का उपयोग कर होस्ट, http://en.wikipedia.org/wiki/Localhost – RobertPitt

+0

धन्यवाद सब - मैंने आईपीवी 6 नहीं माना था। चीयर्स। –

उत्तर

13

स्थानीय होस्ट हमेशा आईपीवी 4 में लूपबैक IP एड्रेस 127.0.0.1 करने के लिए अनुवाद, या IPv6 में ::1, तो आईपी मान्य के भीतर अपने आवेदन, सुरक्षित हो सकता है अगर आप

if(IPAddress::In(array("127.0.0.1","::1"))) 
{ 
    //Show Application 
} 

मैं बहुत ज्यादा शक नहीं है कि आप होगा मतलब आपके पोर्ट 80 के बाद कुलीन हैकर्स की एक टीम लेकिन एक साइड नोट के रूप में आईपी पते पर भरोसा करने के लिए त्रुटियों के बारे में कुछ बात हुई है क्योंकि टीसीपी पैकेट को संशोधित किया जा सकता है।

लेकिन यह आपके लिए चिंता नहीं होना चाहिए।

0

आप होस्टनाम लोकलहोस्ट भी देख सकते हैं लेकिन यदि सर्वर पता 127.0.0.1 है तो इसे हल करना चाहिए। यह ipv4 पर मानक अभ्यास है। आईपीवी 6 पर आप रॉबर्ट पिट के सुझाव के रूप में :: 1 की जांच करने में सक्षम हैं।

+0

127.0.0.1 हमेशा स्थानीय स्थानीय मशीन – RobertPitt

+0

@RobertPitt को हल करता है जो कि सच भी हो सकता है, लेकिन यह एकमात्र पता नहीं है जो स्थानीय मशीन को हल करता है। 127/8 नेटब्लॉक में लगभग 16777216 अधिक हैं। –

6

मुझे यकीन नहीं है कि उत्तर अब तक बिंदु पर हैं, लेकिन यह मुझे भ्रमित कर सकता है। मैं विशेष रूप से आपके प्रश्न के हिस्से में प्रतिक्रिया दे रहा हूं जो कहता है, "इंटरनेट पर उपलब्ध नहीं है"। यहां एक उत्तर में मेरा प्रयास है:

वेब सर्वर, PHP नहीं, सॉकेट पर सुनता है और कनेक्शन स्वीकार करता है। PHP $ _SERVER (http://www.php.net/manual/en/reserved.variables.server.php) से कनेक्शन के बारे में जानकारी प्राप्त कर सकता है। ध्यान रखें कि आप जो भी जांच रहे हैं वह कनेक्शन कहां से आया है - आप इस बारे में कुछ नहीं सीख सकते कि आपका सर्वर $ _SERVER से अन्य आईपी पते के माध्यम से उपलब्ध है या नहीं। उदाहरण के लिए, मैं के किसी भी माध्यम से अपाचे/PHP के अपने स्थानीय उदाहरण पहुँच सकते हैं:

तो, यदि आपकी योजना यह है कि ऐप $ _SERVER ["SERVER_ADDR"] में "सही" मान को देखने पर अलग-अलग व्यवहार करना है, आप शायद बहुत सुरक्षित हैं - यानी, यह संभव नहीं है कि किसी उपयोगकर्ता द्वारा रिमोट क्लाइंट से धोखा दिया जा सके।

यह सब करने के बाद, मैं इंटरनेट पर उपलब्ध एक तैनाती आवेदन पर उपयोगकर्ताओं के प्रमाणीकरण या उपयोगकर्ता विशेषाधिकार/कार्यों के प्रमाणीकरण के लिए इनमें से किसी भी तकनीक का उपयोग नहीं करता। एक अपवाद हो सकता है यदि आपके पास एक संपूर्ण ऐप है जो केवल स्थानीयहोस्ट से एक्सेस होने पर उपलब्ध हो - तो यह तकनीक संभवतः सभ्य भावना बनाती है और व्यक्तिगत ऐप के लिए पर्याप्त सुरक्षित होगी।

+0

मैं कुछ भी सुरक्षित करने के बारे में चिंतित नहीं हूं - स्क्रिप्ट (वर्डप्रेस प्लगइन) एक फ़ाइल के यूआरएल को वेब-आधारित एपीआई में भेजता है; मैं यह सुनिश्चित करने की कोशिश कर रहा हूं कि लोग अपनी स्थानीय, गैर-नेट-सुलभ मशीनों से यह कोशिश नहीं कर रहे हैं। –

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