ZBLOG

dns-sd 如何发送63.72.16.172.in-addr.arpa: type PTR, class IN, cache flush, Android-2.local Name: 63.72.16.172.in-addr.arpa Type: PTR (12) (domain name PoinTeR) .000 0000 0000 0001 = Class: IN (0x0001) 1... .... .... .... = Cache flush:...

要通过 DNS-SD(DNS Service Discovery)发送 PTR 记录,实际上并不是通过标准的 DNS-SD 方法直接发送的,因为 DNS-SD 主要用于服务发现而非直接与 DNS 服务器交互。通常情况下,DNS-SD 使用 multicast DNS (mDNS) 在局部网络内进行服务发现,而 PTR 记录是 DNS 中的一种标准资源记录。

如果您想在使用 mDNS 的环境中实现类似的功能,比如在本地网络上广播您的设备和服务信息,可以按照以下步骤进行:

步骤

  1. 安装 mDNS 实现: 确保您的系统上有适当的 mDNS 实现,如 Avahi(Linux)或 Bonjour(macOS)。

  2. 设置服务:

    • 使用工具如 dns-sd 命令行工具来注册服务。
    • 举个例子,如果你想注册一个名为 Android-2.local 的服务,可以使用如下命令:
     dns-sd -R "MyService" _http._tcp local 1234 "path=/index.html"
    
  3. 注册 PTR 记录:

    • 在实际工作中,mDNS 会自动处理反向查找请求。当你的设备连接到局域网时,它会自动发布其名称和关联的 IP 地址。因此,在这个上下文中,不需要手动发送具体的 PTR 请求。
  4. 使用 Python 或其他语言编程接口: 如果您希望通过编程方式实现,Python 有 zeroconf 库可用来实现 mDNS 服务发现和注册。示例如下:

   from zeroconf import Zeroconf, ServiceInfo
   
   zeroconf = Zeroconf()
   
   info = ServiceInfo(
       "_http._tcp.local.",
       "Android-2._http._tcp.local.",
       addresses=[socket.inet_aton("63.72.16.172")],
       port=1234,
       properties={"path": "/"},
       server="Android-2.local."
   )
   
   zeroconf.register_service(info)
   
   try:
       input("Press enter to exit...\n\n")
   finally:
       zeroconf.unregister_service(info)
       zeroconf.close()

注意事项

  • mDNS 环境: 请注意,这一切都发生在局部网络内。如果你是在更大范围内(比如互联网上)工作,你可能需要使用传统的 DNS 服务。

  • 权限和配置: 请确保你的设备能够通过相应的库或工具与网络中的其他设备正常通信,并且正确设置了网络参数。

总结来说,通过 DNS-SD 注册和发布服务不涉及手动创建 PTR 记录,这是由 mDNS 自动处理的。具体实施可能依赖于你所选择的平台或编程环境。如果您有特定环境下的问题或需求,请告诉我,我将提供更具针对性的帮助!


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=20021

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?