se utiliza la siguiente función para detectar automáticamente si estamos en una máquina internamente o en un servidor en vivo y luego elegir las configuraciones apropiadas para varios componentes:Detección automática ambiente interno/externo desarrollo
function devIsLocal(){
$res=false;
$http_host=$_SERVER['HTTP_HOST'];
if($http_host=='localhost')$res=true;
if($http_host=='127.0.0.1')$res=true;
if(substr($http_host,-4)=='.lan')$res=true;
if(strpos($http_host, '.')===false)$res=true;
return($res);
}
Como se puede ver que solo se basa en el valor HTTP_HOST.
Por supuesto, si utiliza algún tipo de host virtual localmente como example.com, la función será engañada.
¿Hay alguna otra forma de engañar a la función? y ¿qué otras variables/lugares podríamos ver para determinar dónde estamos?
Tampoco lo hará si accede a su servidor local con su dirección IP pública. –
+1 por mencionar la comprobación de la dirección IP. Andy tiene razón, también tendremos que agregar los intervalos de IP reservados para intranets. ¿Funcionará esto entonces? – zaf
@zaf: Sí, por supuesto. Andy lo malinterpretó como una solución completa, mientras que yo solo quería mostrar el concepto general. Tal vez tengo que ser más explícito en el futuro ...: -/ – fuxia