lib Scapy : Crash de l'application sur un PC mais pas sur les autres
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 :
Code:
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) |
Tout ça est OK d'habitude.
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 ?