2012-05-04 8 views
5

Hola tengo otra pregunta, estoy escribiendo un sitio web simple en PHP y tengo problemas con la visibilidad de mi sitio web en la red local para hacerlo visible a direcciones remotas utilicéPHP - cómo hacer que la página sea visible solo en la red local

$_SERVER['REMOTE_ADDRESS'] 

, pero quiero que sea visible en mi LAN.

¿Cómo puedo hacer esto?

+0

¿Ha intentado simplemente especificar las direcciones IP internas? – Lix

+0

¿Está el servidor al servicio de las páginas web en la misma red que la computadora que está utilizando para acceder a él? Debes asegurarte de que sea así, y que no tengas que ser atendido en algún puerto raro, como: 8888 o algo así. – Josh

+2

Debe hacer esto en la configuración del servidor web o firewall, no en su código PHP. –

Respuesta

12

también en .htaccess se puede permitir desde y nuestra IP/subred, así:

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

por supuesto que debe coincidir con su LAN

+0

Hola, creo que esta pregunta es un poco antigua, pero tengo un problema. Intenté esto para mi LAN ('192.168.2.1/24') y funciona bien para otras computadoras en la red, pero sigo recibiendo un error 403 al acceder desde la misma computadora, el servidor se ejecuta. También agregué 127.0.0.1 pero no tuvo ningún efecto. ¿Usted me podría ayudar? – Scriptim

0

no estoy totalmente seguro, pero tal vez esta es una buena solución suficiente:

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

No funcionará si su IP no está en el bloque '10.0.0.0/8'. – Tibor

+0

@Vic no está 10. ¿reservado para impresoras? – Ozzy

+1

Por supuesto que no! Es una elección de IP perfectamente válida para una red local. Ver http://www.faqs.org/rfcs/rfc1918.html#b – Tibor

5

que debería estar haciendo esto en su archivo .htaccess.

Primero especifica un Denegar todo, y luego especifica una lista de direcciones IP que deben permitirse.

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

Puede permitir que los rangos de esta manera:

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

Si desea permitir 1.2.3.254, 1.2.3.255, 1.2.4.1, 1.2.4.2, 1.2.4.3 y 1.2.4.4,
que puede hacerlo de esta manera:

allow from 1.2.3.254-1.2.4.4 
+5

También debe habilitar al menos el 'fe80 ::/64' si alguno de sus clientes intenta acceder a través de IPv6 (es el ¡futuro de Internet y no debe bloquearse!) – Tibor

+0

Apache devuelve un error usando el código dado: 'orden toma un argumento, 'permite, niega', 'niega, permite' o 'falla mutua'. El segundo espacio en blanco en 'order deny, allow' debe eliminarse. –

+0

He actualizado la respuesta para reflejar esto, gracias @MarcelPfeiffer – Ozzy

1

La respuesta más alta votado es cierto para Apache 2.2. Si usa 2.4, debe usar algo como esto:

<Limit GET POST> 
Require all denied 
Require ip 192.168.1.0/24 
</Limit> 
Cuestiones relacionadas