最近我开始研究我的新 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') )
但到目前为止还没有成功......
有人知道如何进行这项工作吗???
我在您的代码中看到的第一个错误是您正在使用
sr()
和 提供 Ether
层。您可以使用 srp()
,或者让 Scapy 处理 Ether
层。
此外,由于您只期望一个数据包,因此您可以使用
sr1()
或 srp1()
来返回它得到的第一个答案。
而且,您的目标可能是网络 IP,而不是主机 IP。您可以尝试以下方法:
sr1(IP(dst='10.0.0.1') /
UDP(sport=RandShort()) /
NBNSHeader(NAME_TRN_ID=0x8228) /
NBNSQueryRequest(QUESTION_NAME= '*', QUESTION_TYPE='NBSTAT'))