如何确定打印机使用的协议

Esc*_*her 1 printing protocol

我正在尝试确定网络打印机所需的打印协议(ipp、http 等)。我已经获得了打印机的主机名和 IP 地址,并且可以访问 cygwin bash shell 和 powershell。我如何确定它实际使用的是什么协议?据我所知,我的机器和打印机之间没有打印服务器(但希望得到有关如何验证这一点的提示)。

小智 7

您可以使用NMAP 之类的工具对打印机的 IP 地址执行端口扫描,以查看它正在侦听哪些端口上的连接。这可能会泄露它正在使用的协议,因为这些几乎肯定会保留默认值。例如,端口515 会建议 LPR,而端口9100 会建议 HP JetDirect

要使用 nmap 执行打印机的端口扫描,您可以使用以下语法:

nmap -sS 192.168.0.101  
Run Code Online (Sandbox Code Playgroud)

其中192.168.0.101是打印机的 IP。

这将为您提供已发现打开的端口列表。这是我刚刚对办公室里的 Sharp 打印机进行的扫描:

C:\Scripts>nmap -sS 192.168.65.115

Starting Nmap 6.47 ( http://nmap.org ) at 2014-12-19 11:56 GMT Standard Time
Nmap scan report for 192.168.65.115
Host is up (0.36s latency).
Not shown: 991 closed ports
PORT      STATE SERVICE
21/tcp    open  ftp
23/tcp    open  telnet
80/tcp    open  http
443/tcp   open  https
515/tcp   open  printer
631/tcp   open  ipp
5900/tcp  open  vnc
9100/tcp  open  jetdirect
50001/tcp open  unknown
MAC Address: 78:1C:5A:22:83:70 (Sharp)

Nmap done: 1 IP address (1 host up) scanned in 12.05 seconds  
Run Code Online (Sandbox Code Playgroud)

所以在这里我们可以看到它正在侦听 515 (LPR) 和 9100 (JetDirect) 上的连接。还有端口 631,即Internet 打印协议

我不知道端口 50001/tcp 应该做什么,显然 NMAP 也不知道(它将服务显示为unknown)。所以经过简短的谷歌,我查阅了手册,发现它是默认的管理/管理界面,由专有管理工具用来管理打印机。
因此,我们知道这台打印机不仅支持一种打印协议,还支持多种打印协议 - 这些只是打印机上启用的协议。如果我只是阅读供应商的规范,我可能会更快地了解所有这些,但它可能没有那么有趣。

如果您的打印机显示其他端口,您可以在IANA 的指定端口注册表其他地方查找它们。
您不必使用 NMAP ,如果您愿意,还可以使用其他端口扫描程序