使用最新的python代码发送可用nbns协议包,获取同一局域网下其它电脑的名称
时间: 2023-02-02 18:39:20 浏览: 178
几十种常见协议样包.zip
使用Python发送NBNS协议包并获取其他电脑的名称,可以使用第三方库scapy:
```
from scapy.all import *
def get_hostname(ip):
ans,unans = sr(IP(dst=ip)/UDP(sport=RandShort(),dport=137)/NBNSQueryRequest(NAME_TRN_ID=RandShort(),QUESTION_NAME='*'))
for sent,recv in ans:
if recv.haslayer(NBNSQueryResponse):
return recv[NBNSQueryResponse].RR_NAME
hostname = get_hostname("192.168.0.1")
print(hostname)
```
其中,`IP(dst=ip)`表示目标IP地址,`UDP(sport=RandShort(),dport=137)`表示使用UDP协议,端口137是NBNS协议的默认端口。`NBNSQueryRequest`是NBNS请求报文,`NAME_TRN_ID`是请求标识符,`QUESTION_NAME`是询问的主机名。最后,如果收到了NBNS响应报文,则返回`RR_NAME`字段,表示主机名。
阅读全文