测试打印机:Brother DCP-7195DW
固件版本:F1911142047 1.08
系统环境:v10SP1
cups=2.3.1-9kylin1k4
avahi-daemon=0.7-4kylin7
snmp=5.8+dfsg-2kylin2k2
7
种自动发现并添加网络机打印的方案。为什么要寻找多种打印机协议发现方案,而不是只用一种方法?
调研期间,通过不同的协议及获取数据的方式,发现了7种不同的发现网络打印机的方案。(详细测试结果请查阅网络打印协议测试.xlsx
)
方案连接协议 | 连接流程 |
---|---|
lpd | lpinfo/avahi 获取 lpd uri ->向snmpwalk发送请求获取设备信息 ->调用cups接口连接打印机 |
ipp(1) | lpinfo 获取 ipp uri ->通过名称猜测厂商和型号 ->调用cups接口连接打印机 |
ipp(2) | ippfind 获取 ipp uri ->向snmpwalk发送请求获取设备信息 ->调用cups接口连接打印机 |
socket | avahi获取ip ->并处理成socket uri ->向snmpwalk发送请求获取设备信息 ->调用cups接口连接打印机 |
dnssd | lpinfo 获取 dnssd uri ->通过名称猜测厂商和型号 ->调用cups接口连接打印机 |
http(1) | avahi使用_printer._tcp获取http ->uri向snmpwalk发送请求获取设备信息 ->调用cups接口连接打印机 |
http(2) | avahi获取ip 并处理成http uri ->向snmpwalk发送请求获取设备信息 ->调用cups接口连接打印机 |
问题分析:
5
种手动可以通过输入ip地址来添加网络打印机。打印机名称
、uri
、pdd文件路径
)、寻找驱动(需要厂商
、型号
)、打印测试页已经在usb打印机阶段完成,现阶段只需要完成参数收集的任务即可。snmpwalk_usage.md(pdf,html)
信号-槽
机制实现定制开发。3.
解析到的域名获取到打印机的ip地址。1.
获取到ip地址,用snmpwalk查询3.
获取到域名,用snmpwalk查询3.
获取到的uri解析获取1.
获取到ip,组合成uri1.
获取到的ip,用snmpwalk查询3.
获取到域名,用snmpwalk查询5.
打印机名称猜测(可能不稳定,因为用户可以自由设置打印机名称)厂商名_型号名
。4
获取到的厂商型号信息组合生成1.
获取到ip地址,用snmpwalk查询3.
获取到域名,用snmpwalk查询