2012-05-04 4 views
5

안녕하세요, 저는 PHP로 간단한 웹 사이트를 작성하고 로컬 네트워크에서 내 웹 사이트의 가시성에 문제가있어 원격 주소에 표시되도록했습니다. 내가 사용했다PHP - 로컬 네트워크에서만 페이지를 볼 수있게 만드는 방법

$_SERVER['REMOTE_ADDRESS'] 

그러나 내 LAN에서 볼 수 있도록하고 싶다.

어떻게하면됩니까 ??

+0

단순히 내부 IP 주소를 지정하려고 했습니까? – Lix

+0

서버가 액세스하는 데 사용중인 컴퓨터와 동일한 네트워크에있는 웹 페이지를 제공합니까? 그것이 확실한지 확인하고 8888 등의 이상한 항구에서 제공하지 않아야합니다. – Josh

+2

PHP 코드가 아닌 웹 서버 또는 방화벽 구성에서이 작업을 수행해야합니다. –

답변

12

.htaccess에서도 허용 할 수 있습니다. 이 같은 우리의 IP/서브넷 : 물론

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

당신의 LAN

+0

안녕하세요, 저는이 질문을 조금 늙었지만 문제가 있습니다. 내 LAN ('192.168.2.1/24')에서이 작업을 시도했지만 네트워크의 다른 컴퓨터에서도 정상적으로 작동하지만 동일한 컴퓨터에서 액세스 할 때 403 오류가 발생하고 서버가 계속 실행됩니다. 또한 127.0.0.1을 추가했지만 효과가 없습니다. 당신이 나를 도울 수? – Scriptim

0

나는 완전히 확실하지 않다하지만 어쩌면이 충분히 좋은 솔루션입니다 :

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

IP가 '10.0.0.0/8' 블록에 없으면 작동하지 않습니다. – Tibor

+0

@Vic은 10이 아닙니다. 프린터 용으로 예약되어 있습니까? – Ozzy

+1

물론 아닙니다! 이것은 로컬 네트워크를위한 IP의 완벽한 선택입니다. http://www.faqs.org/rfcs/rfc1918.html#b – Tibor

5

당신은 당신의 .htaccess 파일에이 일을해야한다가.

먼저 Deny All을 지정하면 이 허용되어야하는 IP 주소 목록을 지정합니다.

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

당신은이 같은 범위를 허용 할 수 있습니다 :

을 : 당신이 1.2.3.2541.2.3.2551.2.4.11.2.4.2, 1.2.4.31.2.4.4,
당신이 이런 식으로 작업을 수행 할 수 있도록하려면

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

allow from 1.2.3.254-1.2.4.4 
+5

클라이언트가 IPv6를 통해 액세스하려고 시도하는 경우 적어도 "fe80 ::/64"를 활성화해야합니다 (이것은 인터넷의 미래를 차단해서는 안됩니다!) – Tibor

+0

아파치는 주어진 코드를 사용하여 오류를 반환합니다. 'order는 하나의 인수,'allow, deny ','deny, allow '또는'mutual-failure '를 취합니다. 'order deny, allow'의 두 번째 공백은 제거되어야합니다. –

+0

나는 이것을 반영하기 위해 대답을 업데이트했다. 감사합니다. @MarcelPfeiffer – Ozzy

1

가 가장 높은 투표 대답은 아파치 2.2 사실과 일치해야합니다. 2.4를 사용한다면 다음과 같이 사용해야합니다.

<Limit GET POST> 
Require all denied 
Require ip 192.168.1.0/24 
</Limit> 
관련 문제