我的打印机生成的 URLhp-makeuri
如下所示:
hp:/net/Officejet_6500_E710n-z?ip=192.168.178.30
但是打印机位于启用了 DHCP 的 wifi 网络上,因此其 IP 地址会发生变化。另一方面,我的 wifi 路由器似乎足够智能,拥有某种 DNS:
$ ping hp-6500a
PING hp-6500a.fritz.box (192.168.178.30) 56(84) bytes of data.
64 bytes from hp-6500a.fritz.box (192.168.178.30): icmp_req=1 ttl=255 time=11.3 ms
我尝试在 CUPS URL/DeviceUID 中使用主机名,但失败了,有什么建议可以实现并且格式正确吗?
答案1
我认为你可以利用零信任此处动态查找您的打印机。语法如下:
hp:/net/Officejet_6500_E710n-z?zc=printer
那里,zc
代表零信任, 这移动DNS实施者阿瓦希设置该 URI 后,您可能会看到一些用于查询打印机的多播网络流量,如下面的部分 tcpdump 所示。
root@ubuntu:/etc/avahi# tcpdump -vvvvvn -i wlan0 host 224.0.0.251
tcpdump: listening on wlan0, link-type EN10MB (Ethernet), capture size 65535 bytes
11:20:49.783337 IP (tos 0x0, ttl 255, id 0, offset 0, flags [DF], proto UDP (17), length 59)
172.25.197.98.5353 > 224.0.0.251.5353: [udp sum ok] 0 A (QM)? printer.local. (31)
11:20:49.787975 IP (tos 0x0, ttl 255, id 44750, offset 0, flags [none], proto UDP (17), length 69)
172.25.197.160.5353 > 224.0.0.251.5353: [udp sum ok] 0*- [0q] 1/0/0 printer.local. (Cache flush) [4m] A 172.25.197.160 (41)
DHCP 服务器可以将诸如 之类的 DNS A 记录printer.anintranet.example
添加到动态区域。原始域名 ( anintranet.example
) 被丢弃(可能是因为它位于 ? 的“搜索”指令中/etc/resolv.conf
),并.local
作为 mDNS 查询的一部分添加。