• Publicidad

Cómo ver la IP pública

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Cómo ver la IP pública

Notapor isseu » 2008-12-12 09:59 @457

¿Cómo podría ver mi IP pública en Perl? Si, por ejemplo, tengo miip.es y viendo la IP que me da. ¿Existe algún módulo? ¿y cómo se usa?
isseu
Perlero nuevo
Perlero nuevo
 
Mensajes: 1
Registrado: 2008-12-12 09:31 @438

Publicidad

Notapor explorer » 2008-12-12 18:11 @799

Bienvenido a los foros de Perl en Español, isseu.

Para saber la IP pública se puede hacer, primero, viendo cuáles son los servidores de nombres (DNS) de ese dominio. Con alguno de los módulos whois se podría intentar, pero no conozco si funcionará para los dominios españoles.

Una vez que sepas cuáles son los servidores de nombres, le puedes pedir información sobre el dominio, usando por ejemplo el comando dig (en Linux):

Código: Seleccionar todo
$ dig @ineco.nic.es any dominios.es
; <<>> DiG 9.3.4-P1.1 <<>> @ineco.nic.es any dominios.es
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43373
;; flags: qr aa rd; QUERY: 1, ANSWER: 10, AUTHORITY: 0, ADDITIONAL: 4

;; QUESTION SECTION:
;dominios.es.                   IN      ANY

;; ANSWER SECTION:
dominios.es.            3600    IN      SOA     ns1.red.es. hostmaster.red.es. 2004090100 7200 1800 1209600 7200
dominios.es.            3600    IN      NS      ns2.red.es.
dominios.es.            3600    IN      NS      nso.nic.es.
dominios.es.            3600    IN      NS      ns1.red.es.
dominios.es.            3600    IN      A       194.69.254.54
dominios.es.            3600    IN      MX      40 chico.rediris.es.
dominios.es.            3600    IN      MX      10 correo.red.es.
dominios.es.            3600    IN      MX      20 relay.idatahouse.com.
dominios.es.            3600    IN      MX      30 relay2.idatahouse.com.
dominios.es.            3600    IN      TXT     "v=spf1 redirect=red.es"

;; ADDITIONAL SECTION:
ns1.red.es.             3600    IN      A       194.69.254.3
ns2.red.es.             3600    IN      A       194.69.254.4
nso.nic.es.             3600    IN      A       194.69.254.2
correo.red.es.          3600    IN      A       194.69.254.60

;; Query time: 2 msec
;; SERVER: 194.69.254.2#53(194.69.254.2)
;; WHEN: Sat Dec 13 00:01:48 2008
;; MSG SIZE  rcvd: 365

Aquí, ves que estoy preguntando al servidor secundario de nic.es por un dominio. De todas las líneas, la que me interesa es la de los registros A, que son las IP públicas. También puedes pedir información por un servidor específico:

Código: Seleccionar todo
$ dig @ineco.nic.es any www.ayto-penafiel.es
; <<>> DiG 9.3.4-P1.1 <<>> @ineco.nic.es any www.ayto-penafiel.es
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14812
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 1

;; QUESTION SECTION:
;www.ayto-penafiel.es.          IN      ANY

;; ANSWER SECTION:
www.ayto-penafiel.es.   172800  IN      A       217.127.89.52

;; AUTHORITY SECTION:
ayto-penafiel.es.       172800  IN      NS      servidor.fa1.cie.uva.es.
ayto-penafiel.es.       172800  IN      NS      ineco.nic.es.
ayto-penafiel.es.       172800  IN      NS      aprosi4.aprosi.net.

;; ADDITIONAL SECTION:
ineco.nic.es.           3600    IN      A       194.69.254.2

;; Query time: 2 msec
;; SERVER: 194.69.254.2#53(194.69.254.2)
Lo mismo que antes, solo me interesan las líneas A.

En Perl, puedes usar la función gethostbyname():
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
    use Socket;
    $packed_ip = gethostbyname("miip.es");
    if (defined $packed_ip) {
        $ip_address = inet_ntoa($packed_ip);
    }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Y para obtener más información que la IP, está el módulo Net::DNS (y otros).
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Intermedio

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 24 invitados

cron