2011-06-12 2 views
1

pycap http://pycap.sourceforge.net/을 사용하여 이더넷 패킷을 캡처하려고합니다. 내가 루트 권한으로 파이썬 프롬프트에 명령을 다음 사용할 때, 그것은스크립트에서 Pycap이 작동하지 않습니다

>>>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) 

을하고있다하지만 난이 스크립트로이 명령을 실행하면, 나는 오류

>>>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 

어떤 제안은 다음 받고 있어요? pycap http://pycap.sourceforge.net/에는 python2.3이 필요하며 python2.6을 사용하고 있다고 나와 있습니다. 그게 문제 야?

답변

5

pycap을 사용하는 스크립트의 이름은 pycap이므로 import pycap은 일반적으로 가져 오기 경로의 첫 번째 디렉토리입니다(). 가져 오기가 캐시이기 때문에 이것은 무한 재귀를 유도하지는 않지만 여러분 자신의 모듈에 대한 참조를 제공합니다. 물론 이것은 capture 또는 다른 것을 정의하지 않습니다. 이름을 바꿉니다.

+0

오 .. 정말 바보 같은 실수였습니다. 나는 그것을 어떻게 놓칠 수 있습니까? 그것은 문제를 해결했다. 고마워. – Netro

관련 문제