URL для моего принтера, сгенерированный с помощью hp-makeuri
, выглядит следующим образом:
hp:/net/Officejet_6500_E710n-z?ip=192.168.178.30
Но принтер находится в сети Wi-Fi с поддержкой dhcp, поэтому его IP-адрес может и может измениться. С другой стороны, мой маршрутизатор Wi-Fi кажется достаточно умным, чтобы иметь какой-то 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
Я пытался использовать имя хоста в URL / DeviceUID CUPS, но это не удалось, любые предложения, если это возможно, и правильный формат?
Я думаю, что вы можете использовать ZeroConf здесь для динамического поиска вашего принтера. Синтаксис выглядит следующим образом:
hp:/net/Officejet_6500_E710n-z?zc=printer
Там zc
обозначает ZeroConf , mDNS , реализованный avahi . При настройке этого 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)
DNS-записи типа printer.anintranet.example
могут быть добавлены в динамическую зону DHCP-сервером. Исходное доменное имя (anintranet.example
) отбрасывается - возможно, потому что оно находится в директиве «search» /etc/resolv.conf
? - и .local
добавляется как часть запроса mDNS.