2011-06-12 7 views
1

J'essaie de capturer le paquet ethernet en utilisant pycap http://pycap.sourceforge.net/. lors de l'utilisation commande suivante sur l'invite de python avec les privilèges root, il travaillePycap ne fonctionne pas dans le script

>>>import pycap.capture 
>>>p = pycap.capture.capture("wlan0") 
>>>p.next() 
(Ethernet(type=0x608, 00:1b:b1:46:53:5d -> ff:ff:ff:ff:ff:ff), ARP(op=0x1, protocol=0x800,  00:1b:b1:46:53:5d (192.16.68.10) -> 00:00:00:00:00:00 (192.16.110.39)), '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', 1307898356.222398) 

Mais si j'exécuter ces commandes comme un script, je m obtenir erreur suivant

>>>sudo python pycap.py 
Traceback (most recent call last): 
    File "pycap.py", line 2, in <module> 
    from pycap import * 
    File "/home/nikhil/Code/Python/pycap.py", line 5, in <module> 
    p = capture.capture(device) 
    NameError: name 'capture' is not defined 

Toutes les suggestions? pycap http://pycap.sourceforge.net/ dit qu'il faut python2.3 et im en utilisant python2.6. Est-ce un problème?

Répondre

5

Votre script en utilisant pycap est appelé pycap lui-même, de sorte que les importations se import pycap (. est généralement le premier répertoire sur le chemin d'importation). Parce que les importations sont des caches, cela ne conduit pas à une récursion infinie mais vous donne à la place une référence à votre propre module, qui bien sûr ne définit pas capture ou toute autre chose. Renommez-le.

+0

oh .. c'était vraiment une erreur idiote. Comment puis-je le manquer? il a résolu le problème .. Merci – Netro