Использование GL-inet серии GL-ar300m-Ext и использование последней версии Scapy 2.4.3. В Python3 у меня возникали проблемы с /usr/lib/python3.6/site-packages/scapy/arch/linux.py с функцией setSocket (). Я проверил, что файл такой же. Я смог запустить ту же самую программу в оболочке Python, но в целом она не работает с текущей версией scapy.
Ниже приводится простая программа, разработанная для проверки подключения маршрутизатора и проверки, можем ли мы прослушиватьотправленные пакеты.
from scapy.all import *
packets=sniff(filter="host 192.168.8.183 and tcp port 23", count=1)
ans = sr1(packets) #send packet to dst
packets.show()
print(packets)
Обнаружена следующая ошибка:
Traceback (most recent call last):
File "sniffer.py", line 3, in <module>
packets=sniff(filter="host 192.168.8.183 and tcp port 23", count=1)
File "/usr/lib/python3.6/site-packages/scapy/sendrecv.py", line 972, in sniff
sniffer._run(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/scapy/sendrecv.py", line 842, in _run
*arg, **karg)] = iface
File "/usr/lib/python3.6/site-packages/scapy/arch/linux.py", line 475, in __init__
attach_filter(self.ins, filter, iface)
File "/usr/lib/python3.6/site-packages/scapy/arch/linux.py", line 161, in attach_filter
sock.setsockopt(socket.SOL_SOCKET, SO_ATTACH_FILTER, bp)
OSError: [Errno 22] Invalid argument
Когда эта же программа запускается с python2, возникает эта ошибка:
Traceback (most recent call last):
File "sniffer.py", line 2, in <module>
from scapy.all import *
File "/usr/lib/python2.7/site-packages/scapy/all.py", line 16, in <module>
from arch import *
File "/usr/lib/python2.7/site-packages/scapy/arch/__init__.py", line 71, in <module>
from linux import *
File "/usr/lib/python2.7/site-packages/scapy/arch/linux.py", line 159
WARNING: No route found for IPv6 destination :: (no default route?)
^
SyntaxError: invalid syntax
Посоветуйте, пожалуйста, какие-либо обходные пути или исправления, необходимые с библиотекой, или лучший способ решения таких проблем. Спасибо!