Bonjour à tous.
Dans le cadre de mon projet, on utilise la lib Scapy afin de sniffer les paquets qui transitent sur le réseau local (192.168.2.3). On a des OPC Server qui tournent sur la même machine et branchés à cette adresse, et on veut sniffer les paquets qui y rentrent.
Globalement, ça marche nickel depuis plus d'un an, sur nos PC (il y a du winXP et du win7).
Voici l'extrait de code qui s'en charge, dans un thread séparé du reste évidemment :
Tout ça est OK d'habitude.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 while Trigger: scapy.all.conf.iface = self.ethernet # ID de la carte ethernet a sniffer # Launches self.customAction on the packets received print filter_name # "udp and host 192.168.2.3" print scapy.all.conf.iface # p.ex "eth1" ou "eth12" selon le PC scapy.all.sniff(filter=filter_name, prn=self.customAction, # fonction a executer sur chaque paquet qui redirige celui-ci vers le bon analyseur selon sa signature count=10)
Cependant, lorsque je lance ce même code sur le server sous Windows Server 2003, tout freeze au niveau de scapy.all.sniff. Les deux print qui le précèdent sont affichés (parfois il en manque un), mais c'est tout. J'ai mis un print à l'entrée de self.customAction, rien. Et même un print à l'entrée de la fonction sniff (C:/Python27/Lib/site_packages/scapy/sendrecv.py + supprimé le .pyc pour forcer la recompil), rien non plus.
Et lorsque je dis freeze, c'est toute l'IHM qui est bloquée, alors que le sniff se fait dans un thread séparé.
Je n'arrive pas à comprendre ce qui bloque. Est-ce une incompatibilité avec win server 2003 ? Est-ce un conflit avec un autre logiciel/composant qui pose souci sous win server 2003 et pas sous >XP ?
Partager