mdns 服务器 python语言实现
时间: 2023-12-28 16:06:03 浏览: 34
以下是一个简单的 Python 实现,它可以作为一个基本的 MDNS 服务器:
```python
import socket
# 设置 MDNS 服务器的 IP 地址和端口号
mdns_server = '224.0.0.251'
mdns_port = 5353
# 创建 UDP 套接字并绑定到 MDNS 服务器的 IP 地址和端口号
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind((mdns_server, mdns_port))
# MDNS 查询响应
response = b'\x00\x00\x84\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x08_test._tcp\x05local\x00\x00\x0c\x00\x01\xc0\x0c\x00\x0c\x00\x01\x00\x00\x00\x3c\x00\x04\x7f\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00'
# 监听 MDNS 请求并处理请求
while True:
data, addr = sock.recvfrom(1024)
query = data[12:].decode('utf-8').strip()
if query == '_test._tcp.local':
sock.sendto(response, (addr[0], mdns_port))
```
这个程序创建了一个 UDP 套接字并绑定到 MDNS 服务器的 IP 地址和端口号。然后程序不断监听 MDNS 请求,当收到请求时,检查是否是 "_test._tcp.local" 的查询请求,如果是,则向请求者发送一个 MDNS 响应。这个响应是一个二进制数据,它包含了一些 MDNS 查询响应的必要信息,比如查询类型和 TTL 等。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)