para - La dirección IP de la máquina en PHP da:: 1 pero ¿por qué?
obtener ip publica php (6)
$ _SERVER [''REMOTE_ADDR''] es la dirección IP del cliente.
$ _SERVER [''SERVER_ADDR''] es la dirección IP del servidor.
Referencia: http://php.net/manual/en/reserved.variables.server.php
Estoy tratando de buscar la dirección IP de mi máquina a través de php. Para eso estoy escribiendo el código como:
<?php echo "<br />".$_SERVER[''REMOTE_ADDR''];?>
Pero este pedazo de código no está funcionando. Está regresando " ::1
". Por favor, ayúdame a obtener la dirección IP real.
Mira la salida de phpinfo()
. Si la dirección no está en esa página, entonces la dirección no está disponible directamente a través de PHP.
Respuesta simple: lo está usando en el servidor local. Prueba correr
function getUserIpAddr(){
if(!empty($_SERVER[''HTTP_CLIENT_IP''])){
//ip from share internet
$ip = $_SERVER[''HTTP_CLIENT_IP''];
}elseif(!empty($_SERVER[''HTTP_X_FORWARDED_FOR''])){
//ip pass from proxy
$ip = $_SERVER[''HTTP_X_FORWARDED_FOR''];
}else{
$ip = $_SERVER[''REMOTE_ADDR''];
}
return $ip;
}
echo ''User Real IP - ''.getUserIpAddr();
en servidor real O también puedes usar el ejecutor php en línea.
Si está intentando ejecutar localhost, esta respuesta solucionará su problema. Solo algunos cambios en
apache2/httpd.conf
buscar todas las palabras "escuchar" ex:
Listen 80
Haz así
Listen 127.0.0.1:80
que reiniciar tu apache
$_SERVER[REMOTE_ADDR]
mostrará Listen 127.0.0.1
puedes ver la respuesta en este enlace de respuesta detallado
Si quiere decir obtener la dirección IP del usuario, puede hacer algo como:
<?php
if(!empty($_SERVER[''HTTP_CLIENT_IP''])){
$ip=$_SERVER[''HTTP_CLIENT_IP''];
}
elseif(!empty($_SERVER[''HTTP_X_FORWARDED_FOR''])){
$ip=$_SERVER[''HTTP_X_FORWARDED_FOR''];
}
else{
$ip=$_SERVER[''REMOTE_ADDR''];
}
?>
<?php echo "<br />".$ip;?>
Obtendrá la dirección IP real del usuario, independientemente de los proxies, etc.
::1
es la IP real. Es una dirección loopback ipv6 (es decir, localhost). Si estuviera usando ipv4, sería 127.0.0.1
.
Si desea obtener una dirección IP diferente, deberá conectarse al servidor a través de una interfaz de red diferente.