Accueil Foire Aux Questions Trouver d'autres membres Rechercher Utilisez le vBpad pour stocker des notes personnelles Ici, vous pouvez voir les sujets auxquels vous avez souscris, vos messages privés; et modifier vos informations personnelles et préférences. Statistiques du forum Enregistrez vous gratuitement ! Se déconnecter  
Forum OXMO Forum OXMO > Section Technique > Software > [LINUX] Script PERL pour lister les connexions NAT


Aller au Forum:
Notez ce sujet :

  Sujet précédent   Sujet suivant
Auteur
Sujet Poster un nouveau sujet    Poster une réponse
 soul^keeper  Rechercher tous les messages de ce membre Cliquez ici pour envoyer un message privé à cet utilisateur
Administrateur

Déconnecté

Niveau : 5
N° de Membre : 1

Ancienneté : 100%
Participation : 19%
Inscription: 22 Feb 2002
Localisation: La Défense
Age: 48
Messages: 16623
Sujets Lancés : 2412

Lightbulb [LINUX] Script PERL pour lister les connexions NAT

Un petit script bien sympa pour lister toutes les connexions NAT de votre passerelle linux :)





Créez un fichier "lsnat" avec les droits d'execution, et collez le code suivant :

code:
#!/usr/bin/perl use Net::DNS; use Getopt::Std; getopts("n"); $named=$opt_n; @ip=(); # get list of IP on interface open(IN,"ifconfig -a | grep "inet addr" |"); while (<IN>) { chop; s/^\s+//g; s/\s+/ /g; $line=$_; @f=split(/ /,$line); @g=split(/:/,$f[1]); push(@ip,$g[1]); } close(IN); #for ($i=0;$i<@ip;$i++) #{ print ("IP=$ip[$i]\n"); } open(IN,"/proc/net/ip_conntrack"); while (<IN>) { chop; s/\s+/ /g; $line=$_; @f=split(/ /,$line); $status=""; $source_ip=""; $source_port=""; $target_ip=""; $target_port=""; $target_name=""; $icmp_type=""; $icmp_code=""; $protocol=$f[0]; if ($protocol =~ /tcp/i) { $status=$f[3]; @g=split(/=/,$f[4]); $source_ip=$g[1]; @g=split(/=/,$f[5]); $target_ip=$g[1]; if ((!grep /$source_ip/, @ip) && (!grep /$target_ip/, @ip)) { @g=split(/=/,$f[6]); $source_port=$g[1]; @g=split(/=/,$f[7]); $target_port=$g[1]; if ($named==0) { $res = new Net::DNS::Resolver; $query = $res->query($target_ip,"PTR"); if ($query) { foreach $rr ($query->answer) { next unless $rr->type eq "PTR"; $target_name=$rr->ptrdname; last; } } } printf("%4s %15s/%5s -> %15s/%5s %s", "tcp",$source_ip,$source_port,$target_ip,$target_port,$status); if ($named==0) { printf(" (%s)",$target_name); } print ("\n"); } } elsif ($protocol =~ /udp/i) { @g=split(/=/,$f[3]); $source_ip=$g[1]; @g=split(/=/,$f[4]); $target_ip=$g[1]; if ((!grep /$source_ip/, @ip) && (!grep /$target_ip/, @ip)) { @g=split(/=/,$f[5]); $source_port=$g[1]; @g=split(/=/,$f[6]); $target_port=$g[1]; if ($named==0) { $res = new Net::DNS::Resolver; $query = $res->query($target_ip,"PTR"); if ($query) { foreach $rr ($query->answer) { next unless $rr->type eq "PTR"; $target_name=$rr->ptrdname; last; } } } printf("%4s %15s/%5s -> %15s/%5s %s", "udp",$source_ip,$source_port,$target_ip,$target_port,$status); if ($named==0) { printf(" (%s)",$target_name); } print ("\n"); } } elsif ($protocol =~ /icmp/i) { @g=split(/=/,$f[3]); $source_ip=$g[1]; @g=split(/=/,$f[4]); $target_ip=$g[1]; $icmp_type=$f[5]; $icmp_code=$f[6]; $status=$f[8]; if ((!grep /$source_ip/, @ip) && (!grep /$target_ip/, @ip)) { if ($named==0) { $res = new Net::DNS::Resolver; $query = $res->query($target_ip,"PTR"); if ($query) { foreach $rr ($query->answer) { next unless $rr->type eq "PTR"; $target_name=$rr->ptrdname; last; } } } printf("%4s %15s %5s -> %15s %5s %s", "icmp",$source_ip," ",$target_ip," ",$status); if ($named==0) { printf(" (%s)",$target_name); } print ("\n"); } } } close(IN);


Signaler ce message à un modérateur | IP: Logguée
Temps en ligne : 92 Jours, 20 Heures, 31 Minutes, 0 Seconde en ligne

Old Post 27-07-2005 12:43
Cliquez ici pour voir le profil de soul^keeper Cliquez ici pour lui envoyer un message privé  Trouver plus de messages de soul^keeper Ajouter soul^keeper à votre liste d'amis Editer/Effacer le Message Citer le message dans la réponse
 shakes808080  Rechercher tous les messages de ce membre Cliquez ici pour envoyer un message privé à cet utilisateur
Guru

Déconnecté

Niveau : 5
N° de Membre : 517

Ancienneté : 100%
Participation : 11%
Inscription: 08 Mar 2002
Localisation:
Messages: 8978
Sujets Lancés : 354

sympa, j'essayerai ça ce soir...


Signaler ce message à un modérateur | IP: Logguée
Temps en ligne : 45 Jours, 5 Heures, 55 Minutes, 7 Secondes en ligne

Old Post 27-07-2005 12:50
Cliquez ici pour voir le profil de shakes808080 Cliquez ici pour lui envoyer un message privé  Trouver plus de messages de shakes808080 Ajouter shakes808080 à votre liste d'amis Editer/Effacer le Message Citer le message dans la réponse
Il est actuellement 17:54 (GMT) Poster un nouveau sujet    Poster une réponse   
  Sujet précédent   Sujet suivant
Forum OXMO > Section Technique > Software > [LINUX] Script PERL pour lister les connexions NAT

Aller au Forum:
Notez ce sujet :


 Réponse Rapide
Titre: (Optionnel)
Message:

Convertir automatiquement les URLs Montrer la Signature
Afficher une version imprimable | Envoyer cette page par email | S'inscrire à ce sujet | Télécharger ce sujet
Règles du forum :
Créer de nouveaux sujets
Répondre aux messages
Attacher des fichiers
Editer vos messages
: not autorisé
: not autorisé
: not autorisé
: not autorisé
Le Code HTML est OFF
Le Code vB est ON
Les Smileys sont ONs
Le code [IMG] est ON
 
< Contactez-nous - Forum OXMO>

Uptime du serveur SQL : 3 jour(s) 17 heure(s) et 30 minute(s)
Page générée en 0.010703 secondes en exécutant 30 requêtes SQL.
Apache - Compression GZIP : Activée.