0

最近我开始研究我的新 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')

但是到目前为止还没有成功......

有没有人知道如何使这项工作?

4

1 回答 1

0

我在您的代码中看到的第一个错误是您正在使用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'))
于 2018-01-29T17:35:19.390 回答