Я делаю основную программу, которая прослушивает соединение и получает все пакеты для последующего анализа, и я не могу правильно использовать функцию socket.recvfrom.
Я использую socket.recvfrom (65565), чтобы получить кадр, а затем проанализировать его. Согласно документации на python3, он должен возвращать кортеж с данными и адресом источника для этого IP-фрейма.
Вместо этого у меня есть кортеж данных и массив. Во втором массиве у меня есть интерфейс, на котором был захвачен пакет плюс другие элементы. Я не могу найти в нем IP-адрес.
Есть ли у кого-нибудь представление о том, что представляют собой эти другие элементы и как получить исходный IP-адрес
def create_socket():
try:
s = socket.socket(socket.AF_PACKET, socket.SOCK_RAW,
socket.htons(0x0003))
except socket.error as msg:
print ("Ne peut pas créer la socket. Code erreur : %d. Message : %s" %
(msg[0], msg[1]))
sys.exit()
return s
def listen_trafic(sock):
while True:
packet, address = sock.recvfrom(
print ("address %s" % socket.inet_ntoa(address))
# generates an error
...
...