Foros del Web » Programando para Internet » PHP »

Función gethostbyaddr

Estas en el tema de Función gethostbyaddr en el foro de PHP en Foros del Web. Buenas. Estoy necesitando realizar una modificación en la geolocalización que tengo en mi sitio web. Actualmente, como pueden ver en la siguiente query, poseo en ...
  #1 (permalink)  
Antiguo 24/02/2016, 21:14
 
Fecha de Ingreso: agosto-2015
Mensajes: 18
Antigüedad: 8 años, 8 meses
Puntos: 0
Función gethostbyaddr

Buenas. Estoy necesitando realizar una modificación en la geolocalización que tengo en mi sitio web.

Actualmente, como pueden ver en la siguiente query, poseo en una tabla las IP's almacenadas de los usuarios. Para mostrarlas, las extraigo de ahí y demás con las funciones del sitio geoplugin.net.

Código:
<?php
  $count_rows = 0;
  $sql_select = mysql_query("SELECT * FROM ips WHERE usuario LIKE '%".$_SESSION['USER:NAME']."%' ORDER BY ID DESC LIMIT 0, 40 ");
  while($logacc = mysql_fetch_array($sql_select))
  {
    $count_rows++;
?>
 <tr>
<td><center><p style="font-size:13px"><?php echo $logacc['Fecha']; ?></center></td>
<?php $meta = unserialize(file_get_contents('http://www.geoplugin.net/php.gp?ip='.$logacc['IP'])); ?>
<td><center><p style="font-size:13px"><?php echo $meta['geoplugin_countryName']; ?></center></td>
<td><center><p style="font-size:13px"><?php echo $logacc['IP']; ?></center></td>
<td><center><p style="font-size:13px"><?php echo gethostbyaddr($logacc['IP']); ?></center></td>
</td>
</tr>
<?php
  }
?>
Como verán, todo ok. He estado probando dándome varias IP's a mi mismo y en el último echo del código (donde uso la función gethostbyaddr) están siempre dándome hosts muy largos como resultados:

192.192.192.192.host.com.ar
fixed-203-141-29.iusacell.net
190.73-114-217.dyn.dsl.cantv.net
201-210-62-94.genericrev.cantv.net


Necesito hacer lo siguiente con esto, acortarlo. Sí. Que solo se muestre la última parte, es decir, el sitio web principal del proveedor de Internet del usuario (o host). En lugar de la lista de arriba, necesitaría que muestre lo siguiente (para que me entiendan mejor):

host.com.ar
iusacell.net
cantv.net
cantv.net


¿Esto es posible? ¿Cómo puedo hacerlo tocando lo que corresponde?

Código:
<td><center><p style="font-size:13px"><?php echo gethostbyaddr($logacc['IP']); ?></center></td>
Gracias.
  #2 (permalink)  
Antiguo 25/02/2016, 20:22
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Función gethostbyaddr

Puedes usar preg_replace() para eliminar todas las secuencias numéricas a la izquierda de dicho valor:
Código PHP:
Ver original
  1. echo preg_replace('#^.*[.\d]+?\.#', '', 'fixed-203-141-29.iusacell.net');

Estudia el ejemplo para que lo puedas aplicar a tu código.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: fecha, mysql, select, sql, tabla, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:30.