Advertisement
kisslo

ClientLatency

Jul 15th, 2011
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 3.91 KB | None | 0 0
  1. #!/usr/bin/perl -w
  2.  
  3. ##############################################################################################>
  4. ##############################################################################################>
  5. ###Script de recupertation du traffic sur un port et son éxportation dans la base mysql ######>
  6. ##############################################################################################>
  7. ##############################################################################################>
  8.  
  9.  
  10. use strict;
  11. use DBI;
  12.  
  13. if(!$ARGV[0] || !$ARGV[1] || !$ARGV[2] || !$ARGV[3]){
  14. print "Usage:./programme <serveur> <port> <identifiant> <motdepasse>\n";
  15. exit;
  16. }
  17.  
  18.  
  19. ######### Déclaration des variables #########################
  20.  
  21. my $line;
  22. my @string;
  23. my $port = $ARGV[1];####port d'écoute pour le sniffer
  24.  
  25. ####### paramètres de connexion à la base de données ############
  26.  
  27. my $bd = 'vision_db';
  28. my $serveur = $ARGV[0];# Il est possible de mettre une adresse IP
  29. my $identifiant = $ARGV[2]; # Identifiant
  30. my $motdepasse = $ARGV[3];# mot de pass
  31.  
  32. ####### Fin paramètres de connexion à la base de données ########
  33.  
  34. ####### Fin déclaration des variables ##############
  35.  
  36. while(1){########## Boucle infini ^^(le programme se reéxecute en permanance) ##########
  37.  
  38. ########################################################################################
  39. ##########################Main Programme################################################
  40. ########################################################################################
  41.  
  42. ############################ Connexion à la base #######################################
  43.  
  44. my $dbh = DBI->connect( "dbi:mysql:dbname=$bd;host=$serveur;", $identifiant, $motdepasse )
  45. or die "Connexion impossible à la base de données $bd !";
  46.  
  47. ########################### Fin de Connexion à la base #################################
  48.  
  49. ########################## Execution du tshark pour l'analyse du reseau sur un port et sauvgarde des données dans un fichier #################
  50.  
  51. system ("/usr/bin/tshark -i eth1 -f 'tcp port $port' -a duration:6 -T fields -E separator=/s -e ip.src -e ip.dst -e frame.time_delta >> traffic");
  52.  
  53. #################### Fin d'Execution du tshark pour l'analyse du reseau sur un port et sauvegarde des données dans un fichier #################
  54.  
  55. ############# Ouverture du fichier contenant l'analyse du traffic #############
  56.  
  57. open(FD,"traffic") || die ("Erreur d'ouverture de file");
  58.  
  59. ############# Fin d'Ouverture du fichier contenant l'analyse du traffic ########
  60.  
  61. ######### Lecture du fichier contenant le traffic ###########
  62.  
  63. while(defined($line=<FD>))
  64. {
  65. ######### Récuperation du traffic entrant et l'insertion dans la base de données mysql ############
  66.  
  67.  
  68. ######## Fin de Récuperation du traffic entrant et l'insertion dans la base de données mysql ############
  69.  
  70. ####### Récuperation du traffic sortant et l'insertion dans la base de données mysql ###########
  71.  
  72. if($line=~ m/^10.8.99.230/){
  73. my $requete_sql = <<"SQL";
  74. INSERT INTO IpVisionOut ( IpIn, IpOut, TempsLatenceIp )
  75. VALUES ( ?, ?, ? );
  76. SQL
  77. @string=split(/ /,$line);
  78.  
  79. my $sth = $dbh->prepare($requete_sql) or die $dbh->errstr;
  80.   $sth->execute( $string[1], $string[0], $string[2] )
  81.   or die "Echec Requête $requete_sql : $DBI::errstr";
  82.  
  83. }
  84.  
  85. ###### Fin de Récuperation du traffic sortant et l'insertion dans la base de données mysql #######
  86.  
  87. }
  88. $dbh->disconnect(); #### Déconnexion de la base de données ####
  89. close FD; #### Fermeture du fichier contenant le traffic ####
  90. system("rm traffic"); #### Suppression du fichier contenant le traffic #####
  91.  
  92. ###########################################################################################
  93. ########################### Fin Main programme ############################################
  94. ###########################################################################################
  95.  
  96. }############# Fin Boucle infini ##############
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement