Запрос имени Netbios не работает

Недавно я начал работать над своим новым проектом на Python, в который я хотел бы включить что-то, что принимает IP-адрес и преобразует его в имя netbios. Поэтому с помощью scapy я попытался выполнить следующий фрагмент кода:

sr(Ether()/IP(flags=0x02, dst='10.0.0.0')/UDP(sport=RandShort())/NBNSQueryRequest(NAME_TRN_ID=0x8228, QUESTION_NAME= '*', QUESTION_TYPE='NBSTAT')) )

Но пока безрезультатно.....

У кого-нибудь есть идея, как заставить это работать???


person flod    schedule 27.01.2018    source источник


Ответы (1)


Первая ошибка, которую я вижу в вашем коде, заключается в том, что вы используете sr() и предоставляете слой Ether. Вы можете либо использовать srp(), либо позволить Scapy работать со слоем Ether.

Кроме того, поскольку вы ожидаете только один пакет, вы можете использовать sr1() или srp1(), которые должны вернуть первый полученный ответ.

И вы нацелены на то, что может быть сетевым IP-адресом, а не IP-адресом хоста. Вот что вы можете попробовать:

sr1(IP(dst='10.0.0.1') /
       UDP(sport=RandShort()) /
       NBNSQueryRequest(NAME_TRN_ID=0x8228, QUESTION_NAME= '*', QUESTION_TYPE='NBSTAT'))
person Pierre    schedule 29.01.2018