¿Cómo saber el nombre de Host de un Visitante/Usuario?

Started by Príncipe_Azul, January 11, 2017, 01:16:44 AM

Previous topic - Next topic

Príncipe_Azul

Hola amigos!!

En PHP se puede saber el nombre del hostname de la IP de un Visitante mediante éste método:

$hostaddr = gethostbyaddr($_SERVER['REMOTE_ADDR']);

es decir, usando la función gethostbyaddr() y la variable $_SERVER['REMOTE_ADDR'], pero ¿SMF no tiene ya una variable para ésto?, es decir, si SMF tiene alguna variable que devuelva el hostname de un Visitante/Usuario.


Muchas gracias de antemano!!
Foro ArgentinaIRC - Ayuda de Programación General, Informática, IRC y mIRC Scripting.

Foro de Artesanías, Recetas de cocina, Ropa para perros, Tejidos, Bijouterie, Porcelana, Chocolatería, Fondos de pantalla, Noticias, Belleza, Medicina natural, Videos y Programas: http://www.misartesanias.net/

d3vcho

¡Hola!

SMF usa la función gethostbyaddr() en Subs.php, en la línea 3767

Saludos :)
"Greeting Death as an old friend, they departed this life as equals"

Príncipe_Azul

Hola, gracias por tu ayuda, pero existe una variable que devuelva el Hostname?, porque en SMF hay muchas variables que tienen muchos valores distintos, por eso tengo la duda, ¿cuál es la variable que muestra el hostname del visitante/usuario?

Aunque me parece que lo mejor es que uno use su propia variable/forma:

$hostaddr = gethostbyaddr($_SERVER['REMOTE_ADDR']);


Saludos!!
Foro ArgentinaIRC - Ayuda de Programación General, Informática, IRC y mIRC Scripting.

Foro de Artesanías, Recetas de cocina, Ropa para perros, Tejidos, Bijouterie, Porcelana, Chocolatería, Fondos de pantalla, Noticias, Belleza, Medicina natural, Videos y Programas: http://www.misartesanias.net/

#jsDotx3

Quote from: Príncipe_Azul on January 12, 2017, 01:23:24 AM
Hola, gracias por tu ayuda, pero existe una variable que devuelva el Hostname?, porque en SMF hay muchas variables que tienen muchos valores distintos, por eso tengo la duda, ¿cuál es la variable que muestra el hostname del visitante/usuario?

Aunque me parece que lo mejor es que uno use su propia variable/forma:

$hostaddr = gethostbyaddr($_SERVER['REMOTE_ADDR']);


Saludos!!
Tiene una forma de hacerlo, está demostrado en el Profile-View.php.


if (preg_match('/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/', $memberContext[$memID]['ip']) == 1 && empty($modSettings['disableHostnameLookup']))
$context['member']['hostname'] = host_from_ip($memberContext[$memID]['ip']);


Básicamente, la función host_from_ip(); que recibe como argumento, la ip de un usuario identificado por su id, te va a devolver eso. Dicha función se encuentra en el Subs.php, función exacta function host_from_ip($ip).

Saludos.

Solved
(Life would be easy with a simple solution.)

Príncipe_Azul

Hola amigo José, muchas gracias por tu ayuda, tengo 1 pregunta:

¿No es mejor usar directamente la función gethostbyaddr()?, ya que puede que esa función host_from_ip() realice más tareas que las que deseo, es decir que en vez de resolver el hostname, también haga otras cosas en dicha función.
La acabo de probar y funciona perfectamente tanto con Visitantes como con Usuarios :D

Saludos y gracias!!
Foro ArgentinaIRC - Ayuda de Programación General, Informática, IRC y mIRC Scripting.

Foro de Artesanías, Recetas de cocina, Ropa para perros, Tejidos, Bijouterie, Porcelana, Chocolatería, Fondos de pantalla, Noticias, Belleza, Medicina natural, Videos y Programas: http://www.misartesanias.net/

-Rock Lee-

Por simple curiosidad ¿con que fin seria neceario saber el host name? Si usando algun proxy o vpn se puede ocultar el nuestro verdadero.


Saludos!
¡Regresando como cual Fenix! ~ Bomber Code
Ayudas - Aportes - Tutoriales - Y mucho mas!!!

Príncipe_Azul

Hola amigo, tengo instalado el mod ProxyBlocker y lo estoy probando, ese mod saca el hostname de las IPs usando la forma general, por eso quería saber como hacerlo mediante SMF.


Saludos!!
Foro ArgentinaIRC - Ayuda de Programación General, Informática, IRC y mIRC Scripting.

Foro de Artesanías, Recetas de cocina, Ropa para perros, Tejidos, Bijouterie, Porcelana, Chocolatería, Fondos de pantalla, Noticias, Belleza, Medicina natural, Videos y Programas: http://www.misartesanias.net/

KENT10000

Cuando te refieres a hostname, quieres decir saber la IP Publica, y demas datos, de los usuarios que ingresan a tu foro ?

Príncipe_Azul

Quote from: KENT10000 on January 17, 2017, 04:06:43 PM
Cuando te refieres a hostname, quieres decir saber la IP Publica, y demas datos, de los usuarios que ingresan a tu foro ?

El mod ProxyBlocker es el que necesita el hostname, pero como dije, utiliza la función por defecto de PHP que puse en primer mensaje, por eso pregunté si SMF ya hace ésto para evitar volver a resolver un hostname.
Me refiero a la IP del usuario, cláro, pero en vez de su IP, su hotname, el nombre del host, ejemplo:

IP Numérica: 190.31.133.211
Hostname: host211.190-31-133.telecom.net.ar

Cabe aclarar que no a todas las IPs es posible resolverle el hostname.
Estoy probando ProxyBlocker y es bastante efectivo, pero ya he visto hasta ahora 2 falsos positivos, sin contar que también bloqueaba a Yahoo! y tuve que hacer una excepción.


Saludos!!
Foro ArgentinaIRC - Ayuda de Programación General, Informática, IRC y mIRC Scripting.

Foro de Artesanías, Recetas de cocina, Ropa para perros, Tejidos, Bijouterie, Porcelana, Chocolatería, Fondos de pantalla, Noticias, Belleza, Medicina natural, Videos y Programas: http://www.misartesanias.net/

KENT10000


Advertisement: