2012-05-04 15 views
5

हाय मुझे एक और सवाल है, मैं PHP में एक साधारण वेबसाइट लिख रहा हूं और मुझे स्थानीय नेटवर्क में अपनी वेबसाइट की दृश्यता के साथ समस्या है ताकि यह दूरस्थ पते पर दिखाई दे सके मैंनेPHP - केवल स्थानीय नेटवर्क में पृष्ठ को कैसे दिखाना है

$_SERVER['REMOTE_ADDRESS'] 

का उपयोग किया, लेकिन मैं इसे अपने लैन में दिखाना चाहता हूं।

मैं यह कैसे कर सकता हूं ??

+0

क्या आपने आंतरिक आईपी पते निर्दिष्ट करने का प्रयास किया है? – Lix

+0

क्या सर्वर आपके कंप्यूटर के समान नेटवर्क पर वेबपृष्ठों की सेवा कर रहा है जिसका उपयोग आप इसे एक्सेस करने के लिए कर रहे हैं? आपको यह सुनिश्चित करना चाहिए कि यह है, और यह कि आपके पास कुछ अजीब बंदरगाह पर सेवा नहीं है, जैसे: 8888 या कुछ। – Josh

+2

आपको इसे वेब सर्वर या फ़ायरवॉल कॉन्फ़िगरेशन में करना चाहिए, न कि आपके PHP कोड में। –

उत्तर

12

भी .htaccess में आप y से अनुमति दे सकते हैं हमारे आईपी/सबनेट, इस तरह:

Order Deny,Allow 
Deny from all 
Allow from 192.168.1.1/24 

निश्चित रूप से यह मैच चाहिए आपके लैन

+0

हाय, मैं यह सवाल थोड़ा पुराना है लेकिन मुझे कोई समस्या है। मैंने अपने LAN ('192.168.2.1/24') के लिए यह कोशिश की और यह नेटवर्क में अन्य कंप्यूटरों के लिए ठीक काम करता है, लेकिन उसी कंप्यूटर से इसे एक्सेस करते समय भी मुझे 403 त्रुटि मिलती है, सर्वर चालू होता है। मैंने 127.0.0.1 भी जोड़ा लेकिन इसका कोई प्रभाव नहीं पड़ा। क्या तुम मेरी मदद कर सकते हो? – Scriptim

0

मैं पूरी तरह यकीन नहीं है लेकिन शायद यह एक अच्छा पर्याप्त समाधान है:

if(substr($_SERVER['REMOTE_ADDRESS'], 0, 3) == '10.') { 
    // welcome... 
} 
+0

काम नहीं करेगा यदि आपका आईपी '10.0.0.0/8' ब्लॉक में नहीं है। – Tibor

+0

@Vic 10. प्रिंटर के लिए आरक्षित नहीं है? – Ozzy

+1

बेशक नहीं! यह स्थानीय नेटवर्क के लिए आईपी की पूरी तरह वैध विकल्प है। देखें http://www.faqs.org/rfcs/rfc1918.html#b – Tibor

5

आप अपनी .htacces फ़ाइल में यह कर दिया जाना चाहिए।

सबसे पहले आप सभी को अस्वीकार करें, फिर आईपी पते की एक सूची निर्दिष्ट करें जिन्हें अनुमति दी जानी चाहिए।

order deny,allow 
deny from all 
allow from X.X.X.X 
allow from X.X.X.X 
allow from X.X.X.X 

आप इस तरह पर्वतमाला अनुमति दे सकते हैं:

allow from 10.0.0.0-10.255.255.255 
allow from 10.0-255.0-255.0-255 
allow from 10.*.*.* 

आप 1.2.3.254, 1.2.3.255, 1.2.4.1, 1.2.4.2, 1.2.4.3, और 1.2.4.4,
आप इसे इस तरह से कर सकते हैं अनुमति देना चाहते हैं:

allow from 1.2.3.254-1.2.4.4 
+5

यदि आपके किसी भी ग्राहक आईपीवी 6 के माध्यम से पहुंचने का प्रयास करते हैं तो आपको कम से कम 'fe80 ::/64' सक्षम करना चाहिए (यह है इंटरनेट का भविष्य और इसे अवरुद्ध नहीं किया जाना चाहिए!) – Tibor

+0

अपाचे दिए गए कोड का उपयोग कर एक त्रुटि देता है: 'आदेश एक तर्क लेता है,' अस्वीकार करें, अनुमति दें ', या' पारस्परिक-विफलता '। 'आदेश अस्वीकार, अनुमति दें' में दूसरा रिक्त हटा दिया जाना चाहिए। –

+0

मैंने अब इसे प्रतिबिंबित करने के लिए उत्तर अपडेट किया है, धन्यवाद @MarcelPfeiffer – Ozzy

1

उच्चतम मतदान जवाब Apache 2.2 के लिए सच है। यदि आप 2.4 का उपयोग करते हैं, तो आपको इस तरह कुछ उपयोग करना होगा:

<Limit GET POST> 
Require all denied 
Require ip 192.168.1.0/24 
</Limit> 
संबंधित मुद्दे