如何使用scapy发送nbns询问包
时间: 2023-02-12 21:33:24 浏览: 67
使用Scapy发送NBNS询问包的方法如下:
1. 安装Scapy:打开终端并输入`pip install scapy`
2. 导入Scapy模块:在代码中输入`from scapy.all import *`
3. 构造NBNS询问包:输入`nbns_query = Ether()/IP(dst="224.0.0.252")/UDP(dport=137)/NBNSQueryRequest(QUESTION_NAME="*")`
4. 发送NBNS询问包:输入`sendp(nbns_query, verbose=0)`
注意:在实际使用中,请确保您具有适当的网络权限,并且不会对他人造成影响。
相关问题
使用python的scapy库,提供一个发送nbns询问包的一个示例代码
以下是使用scapy库发送NBNS询问包的示例代码:
```python
from scapy.layers.dns import DNSQR, NBNSQueryRequest
from scapy.sendrecv import sr1
nbns_query = NBNSQueryRequest(questions=[DNSQR(qname="example.com", qtype=32)])
nbns_response = sr1(nbns_query, verbose=False)
print(nbns_response[NBNSQueryRequest].show())
```
该代码使用scapy库中的NBNSQueryRequest和DNSQR类创建NBNS询问包,并使用sr1函数发送询问包。最后,使用show()方法打印响应。
使用python发送nbns协议包,获取同一局域网下其它电脑的名称
可以使用Python的第三方库如socket、scapy等发送NBNS协议请求,以获取同一局域网下其他电脑的名称。下面是一个使用scapy的简单示例:
```
from scapy.all import *
def get_host_name(ip):
ans, unans = sr(IP(dst=ip)/UDP(sport=RandShort(), dport=137)/NBNSQueryRequest("WORKGROUP<00>"), verbose=0)
for sent, received in ans:
if received.haslayer(NBNSQueryResponse):
return received.getlayer(NBNSQueryResponse).NAME[:-1].decode("utf-16")
host_name = get_host_name("192.168.0.255")
print(host_name)
```
请注意,此示例仅供参考,你可能需要根据实际情况进行修改。