Очевидно, что мы легко можем понюхать сеть с розеткой, как:Определить ссылку типа слоя в питоне
socket.socket(socket.PF_PACKET,socket.SOCK_RAW,socket.htons(0x0003)
socket.recv(65535)
Я хотел бы определить тип link layer
адреса при импорте только socket
и struct
, но канальный уровень не по очевидным причинам появляются в сокетах. Нужно ли писать общую библиотеку, которая обращается к нижнему уровню?
RFC 1122/1123 тип адресного слоя и адрес уровня ссылки.
Update:
Я знаю, что я могу читать его как PCAP и получить информацию канального уровня (т.е. dpkt
есть функция pcap.datalink()
, которая будет возвращать тип канального уровня, а не адрес канального уровня), но Я все еще не уверен, как читать его из необработанного порта (т.е. eth0), в python, для окон и/или linux.
Добавлен тег 'rfc1122' для вас. –