Как захватить Ethe rnet кадров в python3? - PullRequest
0 голосов
/ 17 июня 2020
s = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, socket.ntohs(3))
    while True:
        raw_data, addr = s.recvfrom(65535)
        print(raw_data)

Это SSCCE, который я использую для получения данных из сырого сокета.

У меня есть несколько сомнений относительно этого:

(1) Как я узнаю если raw_data содержит <1, 1 или> 1 кадра?

Если он содержит ровно 1 кадр каждый раз, когда он возвращается, это не проблема.

Однако, если он содержит больше или меньше 1 кадра, тогда Мне нужно будет определить длину каждого кадра.

Если длина не указана, мне нужно как-то использовать CR C, чтобы узнать конец.

(2 ) Как я могу использовать CR C, чтобы узнать конец?

(3) Если CR C не предоставляется NI C, то как я узнаю конец?

...