BlackLight Moderatore
Numero di messaggi : 277 Età : 37 Data d'iscrizione : 22.08.07
| Titolo: [Perl/C] Ip2Host Gio Ago 23, 2007 5:34 pm | |
| L'avevo già postato su altri forum, ma ora lo posto anche qui sul mio. Questo è un piccolo script in Perl che permette di conoscere il nome assegnato a un particolare host conoscendo il suo IP, l'ho fatto tempo fa quando ho cominciato a programmare più o meno seriamente in Perl: - Codice:
-
#!/usr/bin/perl
$args=$#ARGV+1;
if ($args<1) { print "Usage: perl ip2host.pl <ip>\n"; die(); }
$ip=$ARGV[0];
@numbers=split(/\./, $ip); $ip_number=pack("C4", @numbers); $name = (gethostbyaddr($ip_number, 2))[0];
if ($name) { print "Nome associato all'IP $ip: $name\n"; } else { print "Nessun nome associato all'IP $ip\n"; } Versione in C: - Codice:
-
#include <stdio.h> #include <stdlib.h> #include <sys/socket.h> #include <netdb.h>
extern int h_errno;
main(int argc, char **argv) { int i,N; int var1,var2,var3,var4; int addr; struct hostent *remote_host;
if (argc<2) { printf ("Uso: %s <addr1> ... <addrn>\n", argv[0]); exit(1); }
N=argc-1;
for (i=0; i<N; i++) { if (sscanf(argv[i+1],"%d.%d.%d.%d", &var1, &var2, &var3, &var4) != 4) { printf ("Attenzione: %s non è un indirizzo IPv4 valido\n", argv[i+1]); exit(2); }
addr = (int) inet_addr(argv[i+1]); remote_host = gethostbyaddr((char*) &addr, 4, AF_INET);
printf ("Nome corrispondente all'indirizzo IPv4 %s: %s\n", argv[i+1], remote_host->h_name); }
exit(0); } | |
|