列出所有网络打印机(包括未安装的网络打印机)


10

使用以下命令可以很容易地列出已经安装的打印机:

lpstat -a

但是,这不会列出您尚未安装的网络打印机。

nmap将扫描LAN上所有打开的端口,但是生成的列表将不仅限于网络打印机:

sudo nmap -sT 192.168.0.1-254

是否有执行以下操作的命令:

  1. 自动检测您当前连接的局域网。
  2. 扫描整个LAN,专门寻找网络打印机。
  3. 产生同时提供其主机名和IP地址的网络打印机列表。

例如,我今天登录了Imagistics fx2100打印机的Web界面。它具有“查找设备”功能,能够找到LAN上的所有网络打印机(请参见下面的屏幕截图)。似乎在Linux中会有一条命令可以实现相同的列表和信息(无需脚本):

在此处输入图片说明


2
这里的问题是标准(“网络打印机”)仅对人类有意义。计算机程序不会对这个想法有清晰的认识。您可以尝试对成功连接到JetDirect端口(tcp / 9100)的IP地址进行网络扫描。对于非JetDirect打印机(例如通过SMB共享的台式机打印机),该列表仍可能不完整。
布拉奇利2014年

1
正如您所提到的,程序可以扫描LAN上每个IP的开放端口,甚至与这些端口进行一点交谈即可收集数据。我知道该怎么做。我只是不知道已经有这样做的任何命令行实用程序(特别是对于打印机)。
Lonniebiz 2014年

1
您可以进行扫描以找到有效IP地址的列表,并用于nc验证其是否可以连接tcp/9100。您必须编写一些脚本,因为这是您要解决的非常具体的问题。因此,我怀疑有人编写了用于执行此操作的工具。
布拉奇利2014年

Answers:


3

没有专门执行此操作的程序,但是使用nmap -A(高级主机检测/指纹识别)功能可以识别大多数打印机。之后,您将不得不对其进行过滤。


11

如果avahi-daemon正在运行,

avahi-browse -a | grep Printer

avahi-browse -a命令似乎多次列出同一台打印机,并且(即使带有该--all参数也是如此)它忽略了上面屏幕截图中显示的相关信息(例如正在列出的打印机的IP地址)。当列出所有品牌的所有打印机(甚至没有安装但正在提供网络打印的所有打印机)时,令我惊讶的是,“ Imagistics fx2100打印机”所包含的固件击败了我见过的所有Linux实用程序。
Lonniebiz,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.