无法让 Mac 对 CUPS 打印队列执行 dns-sd

无法让 Mac 对 CUPS 打印队列执行 dns-sd

我正在尝试创建 DNS 记录,以便我们网络上的 Mac 可以通过 dns-sd 自动检测可用的打印机(由于我们的 WAN 环境,单独的广播不是一种选择)

如果我通过“IP->cups.server.name->/printers/queueName”手动“添加”CUPS IPP 队列,一切都会正常工作,但如果我添加适当的 PTR/SRV DNS 记录,它就不会

嗅探器显示 Mac 执行 _dns-sd._udp.XXXX 查找,找到 cups 服务器,执行 TXT 查找以获取队列详细信息,一切都很顺利。但是当我打印到这个新队列时,嗅探器显示它以“POST / HTTP”而不是“POST /printers/queueName”连接到 cups IPP 服务器 - 当然 cups 会响应“未找到打印机或类”。然后打印作业在 Mac 上暂停

“rp=printers/queueName”(不带前导“/”)肯定在 TXT 记录中,但看起来 Mac 只是忽略了它???

;; 答案部分:queueName._ipp._tcp.our.domain. 1800 IN TXT "\"txtvers=1\" \"qtotl=1\" \"URF=none\" \"product=(Generic PostScript Printer)\" \"ty=Generic PostScript Printer\" \"note=Jason Test\" \"transparent=t\" \"copies=t\" \"duplex=t\" \"color=t\" \"pdl=application/postscript\" \"rp=printers/queueName\""

知道我错过了什么吗?

答案1

我可以回答我自己的问题

问题在于我们使用 Microsoft DNS,因此在制作 dns-sd TXT 记录时必须小心谨慎。它们通常以以下格式报告

1800 IN TXT“txtvers=1”“qtotl=1”“URF=none”“product=(通用 PostScript 打印机)”“ty=通用 PostScript 打印机”“note=Jason Test”“transparent=t”“copies=t”“duplex=t”“color=t”“pdl=application/postscript”“rp=printers/queueName”

...但如果你看一下我上面的问题,你会发现它们充满了“\”字符 - 这搞砸了 Mac(实际上可能是任何客户端)

诀窍是使用 Microsoft DNS GUI 时,输入这些不带引号的多短语 TXT 记录,然后在位之间按回车键。即

    txtvers=1
    qtotl=1
    product=(Generic PostScript Printer)
    URF=none

一旦我更改了我们的记录,Mac 就会愉快地吞噬元数据,甚至没有提示我安装打印驱动程序就成功打印了。:-)

相关内容