Scapy - OSError: Няма такъв файл или директория

Опитах се да стартирам този код:

import logging
logging.getLogger("scapy.runtime").setLevel(logging.ERROR)

print "hhhh"
from scapy.all import send
from scapy.layers.inet import IP, UDP

send(IP()/UDP())
print "BBBB"

и получих тази изходна грешка:

hhhh
Traceback (most recent call last):
  File "C:/Users/Tamir/PycharmProjects/SIP/main.py", line 12, in <module>
    send(IP()/UDP())
  File "C:\Python27\lib\site-packages\scapy\sendrecv.py", line 251, in send
    __gen_send(conf.L3socket(*args, **kargs), x, inter=inter, loop=loop, count=count,verbose=verbose, realtime=realtime)
  File "C:\Python27\lib\site-packages\scapy\sendrecv.py", line 234, in __gen_send
    s.send(p)
  File "C:\Python27\lib\site-packages\scapy\arch\pcapdnet.py", line 252, in send
    ifs = dnet.ip()
  File "dnet.pyx", line 250, in dnet.ip.__init__ (./dnet.c:2317)
OSError: No such file or directory

Но други функции, като sniff(), работят добре.

Някой знае ли как да поправя това? Използвам windows 7 и python 2.7


person tamird14    schedule 01.07.2015    source източник


Отговори (1)


Scapy изисква библиотека Dnet. Необходим е за изпращане на пакети. Душането и дисекцията може да работят добре и без него.

Можете или да премахнете импортиращия dnet, или да инсталирате dnet библиотека.

Това е подобен въпрос с възможно решение: Стартиране на Scapy под Windows с Python 2.7

person Eriks Dobelis    schedule 01.07.2015
comment
Изглежда обаче, че не работи. Или имате версия на scapy, която изисква dnet в различна форма, или е на различно място от очакваното. Не мога да коментирам без повече подробности - как инсталирахте scapy и dnet? Това е обща инструкция за инсталиране на scapy в Windows: secdev.org/projects/ scapy/doc/installation.html#windows - person Eriks Dobelis; 01.07.2015
comment
Инсталирах scapy с помощта на python setup.py install от папката scapy (scapy-2.3.1), изтеглих файла dnet-1.12.win32-py2.7 и инсталирах библиотеката dnet. Имам и цялата друга необходима библиотека - person tamird14; 01.07.2015
comment
Създайте тестов скрипт на Python само с един ред import dnet и го стартирайте. Успява ли? - person Eriks Dobelis; 01.07.2015
comment
И ако добавите ред r = dnet.ip()? - person Eriks Dobelis; 01.07.2015
comment
същата грешка: Файл dnet.pyx, ред 250, в dnet.ip.__init__ (./dnet.c:2317) OSError: Няма такъв файл или директория - person tamird14; 01.07.2015
comment
Което означава, че не е инсталиран правилно или не е работеща версия на dnet. Използвайте python 2.6, както се препоръчва в документацията на scapy, предоставена по-горе (с връзки към dnet), или намерете работеща библиотека dnet. напр. вижте тази публикация: stackoverflow. com/questions/7817926/ - person Eriks Dobelis; 01.07.2015