Question

Je vais concevoir un analyseur de réseau pour le WiFi (802.11) Actuellement, j'utilise Tshark pour capturer et analyser les trames WiFi, puis tuer la sortie sur un script Perl pour stocker les informations analysées à la base de données MySQL.

Je découvre que beaucoup de cadres me manquent dans ce processus. J'ai vérifié et les cadres semblent être perdus pendant le tuyau (lorsque la sortie est livrée à Perl pour se faire sraire dans MySQL) voici comment il se passe

(Tshark) ------- Les cadres sont perdus ----> (Perl) --------> (MySQL) C'est la façon dont je tuyre la sortie de Tshark vers le script:

sudo tshark -i mon0 -t ad -T fields -e frame.time -e frame.len -e frame.cap_len -e radiotap.length | perl tshark-sql-capture.pl 

C'est un modèle simple du script perl que j'utilise (tshark-sql-capture.pl)

# preparing the MySQL
my $dns = "DBI:mysql:capture;localhost";
my $dbh = DBI->connect($dns,user,pass);
my $db = "captured";

while (<STDIN>) {
    chomp($data = <STDIN>);
    ($time, $frame_len, $cap_len, $radiotap_len) = split "  ", $data;
    my $sth = $dbh-> prepare("INSERT INTO $db VALUES (str_to_date('$time','%M %d, %Y %H:%i:%s.%f'), '$frame_len', '$cap_len', '$radiotap_len'\n)" );
    $sth->execute;
}

#Terminate MySQL
$dbh->disconnect;

Toute idée qui peut aider à améliorer les performances est appréciée. Ou peut-être qu'il existe un autre mécanisme qui peut faire mieux. En ce moment, ma performance est de 50% signifie que je peux stocker à MySQL environ la moitié des paquets que je suis capturé.

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top