IPs por PHP

  • Autor Autor WWWW
  • Fecha de inicio Fecha de inicio
WWWW

WWWW

Pi
Verificación en dos pasos activada
Hola beta.

Conocen alguna variable que me devuelva la ip del usuario en IPv4

He visito algunos sitios y me muestra en IPv4, pero miro otros en IPv6, pero si ejecuto mi cogido me lo da en IPv6, entonces no se como le hacen estas webs para saber mi ip en IPv4

Por ejemplo tengo este código:
PHP:
// IPS

echo "IP Share:" . $_SERVER['HTTP_CLIENT_IP'];
echo '<br>';

// IP Proxy
echo "IP Proxy:" . $_SERVER['HTTP_X_FORWARDED_FOR'];
echo '<br>';

// IP Acceso
echo "IP Access:" . $_SERVER['REMOTE_ADDR'];
echo '<br>';

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'];
}

echo $ip;
echo '<br>';

Web que digo:
IPv4 : MyIP.es - Cual es mi ip? My ip? Direccion ip?
IPv6: What Is My IP Address? IP Address Tools and More
Mi codigo: IPv6

Entonces como hacen estas webs para saber la ipv4 o es falsa? 😕
 
Última edición:
Siempre va tomar en prioridad el IPv6 en vez de IPv4.

La cuestión que algunos sitios muestran y otros no. Es por la sencilla razón que su hosting resuelve IPv6, entonces si el cliente tiene IPv6 y el hosting no este va a resolver únicamente IPv4.
 
Intenta usando este codigo a ver:

<?php
$ip = gethostbyname('www.example.com');
$long = ip2long($ip);

if ($long == -1 || $long === FALSE) {
echo 'IP inválida, por favor intente de nuevo';
} else {
echo $ip . "\n"; // 192.0.34.166
echo $long . "\n"; // -1073732954
printf("%u\n", ip2long($ip)); // 3221234342
}
?>

El metodo ip2long posee la funcionalidad de devolver direcciones IPV4. Intenta con esa funcionalidad a ver si te lo devuelve en IPV4. La documentacion de ese metodo esta aqui PHP: ip2long - Manual
 
Siempre va tomar en prioridad el IPv6 en vez de IPv4.

La cuestión que algunos sitios muestran y otros no. Es por la sencilla razón que su hosting resuelve IPv6, entonces si el cliente tiene IPv6 y el hosting no este va a resolver únicamente IPv4.

Tienes sentido lo que dices, pero las IPs que me da mi hosting son IPv4 pero me muestra mi IP publica en IPv6.

A menos que te refieras que el hosting pueda resolver en IPv6 aunque me dieran a mi IPv4 para asignar.?

Intenta usando este codigo a ver:

<?php
$ip = gethostbyname('www.example.com');
$long = ip2long($ip);

if ($long == -1 || $long === FALSE) {
echo 'IP inválida, por favor intente de nuevo';
} else {
echo $ip . "\n"; // 192.0.34.166
echo $long . "\n"; // -1073732954
printf("%u\n", ip2long($ip)); // 3221234342
}
?>


El metodo ip2long posee la funcionalidad de devolver direcciones IPV4. Intenta con esa funcionalidad a ver si te lo devuelve en IPV4. La documentacion de ese metodo esta aqui PHP: ip2long - Manual

Esta bien la función, el problema es que hay que pasar una URL, y lo que busca es la IP publica de mi conexión.

Gracias por sus respuestas, pero aun estoy averiguando esto.

Ya que hay APIs que la dan en IPv4 y mi hosting y otros en IPv6

Saludos. :encouragement:
 
Última edición:
Te refieres a un hosting a: Compartido, VPS o Dedicado.

Solo porque el cPanel o cualquier panel de control te de IPv4 no significa que el servidor no pueda resolver IPv6.
 
Te refieres a un hosting a: Compartido, VPS o Dedicado.

Solo porque el cPanel o cualquier panel de control te de IPv4 no significa que el servidor no pueda resolver IPv6.

Me refiero a mi IP la de mi proveedor de internet :encouragement:

Es busco en google: cual es mi ip, y algnos me muestran que es una IPv4 y otros IPv6

Entonces realice un simple script que hace tiempo, funcionaba perfectamente me mostraba la IPv4, pero mi IP supuestamente es IPv6 pero los sitios me muestran en IPv4 o IPv6.

Aunque creo que la IPv4: es menos presisa que la IPv6, eso me surge la duda si se la inventan a base de mi pais para no mostrar la de IPv6

Saludos. :encouragement:
 
Última edición:
Atrás
Arriba