我已经在我的 Ubuntu 14.04 机器上使用system-config-printer
. 这个 GUI 程序提供了“查找网络打印机”功能,可以探索本地网络。它返回与 IP 地址关联的打印机名称列表。
所以假设我选择一个并成功安装它。
现在过了一会儿,我意识到我安装的打印机是错误的。所以我再次执行该过程,然后……哦等等,有几台相同类型(和名称)的打印机具有不同的 IP 地址!
好的,没问题,让我们检查一下我刚安装的那个的IP,这样我就不会再安装错误的了。所以问题是:如何获取已安装打印机的 IP?
显然,“属性”对话框(下面的示例)不允许访问此信息(不,它没有隐藏在 URI 行中)。
通过使用 CUPS 网络服务器也没有成功http://localhost:631
,这似乎基本上是获取相同信息的另一种方式。
编辑:问题与下面的打印机无关,但更笼统:由于操作系统能够在网络探索步骤获取打印机的 IP,我假设信息存储在某处。它存储在哪里以及如何访问它?或者它可能没有存储在任何地方?
tre*_*esf 13
扩展上面@JUH的解决方案......
avahi-browse --all -t -r
Run Code Online (Sandbox Code Playgroud)
是自动发现打印机的正确解决方案。
不幸的是,许多打印机根本不会以任何可用的形式向您(最终用户)公开其 IP 地址。这是设计使然。https://www.cups.org/doc/network.html
大多数网络打印机支持称为 Bonjour 的协议,它是由互联网工程任务组 (IETF) 发布的零配置网络 (
ZeroConf
)、多播 DNS (mDNS
) 和 DNS 服务发现 (DNS-SD
) 标准的组合,该组织定义了TCP/IP 和我们今天使用的所有网络
引用 mDNS 页面:
当 mDNS 客户端需要解析主机名时,它会发送一个 IP 多播查询消息,要求具有该名称的主机标识自己。然后该目标机器多播一条包含其 IP 地址的消息。然后该子网中的所有机器都可以使用该信息来更新它们的 mDNS 缓存。任何主机都可以通过发送生存时间 (
TTL
) 为零的响应数据包来放弃其对名称的要求。
因此,要正确找到 mDNS 打印机的 IP 地址,您需要一个能够读取缓存的工具。
引用 OP 的评论之一:
谢谢。就我而言,
lpoptions
确实显示了很多信息,但没有显示 IP。相关字段看起来像device-uri=hp:/net/hp_LaserJet_2420?zc=HP2420ROOMXXX
,所以再次与我从 GUI 工具中得到的相同。所以我假设IP没有存储在我的机器中......
这是avahi-browse
完成这项工作的最佳工具......(或者,如果您来这里寻找 Mac 实用程序,Apple 提供了一个名为dns-sd
)
引用 Avahi 页面:
Avahi 是一个通过 mDNS/DNS-SD 协议套件促进本地网络上服务发现的系统。这使您可以将笔记本电脑或计算机连接到网络,并立即能够查看可以与之聊天的其他人、查找要打印的打印机或查找正在共享的文件。在 Apple MacOS X(品牌为“Bonjour”,有时为“Zeroconf”)中发现了兼容技术。
Avahi 主要针对 Linux 系统,并在大多数发行版中默认提供。在这个阶段它没有移植到 Windows,但可以在许多其他类似 BSD 的系统上运行。主要 API 是 D-Bus 并且是大多数 Avahi 使用所必需的,但是可以使用放置在
/etc/avahi/services
.另请参阅该
nss-mdns
项目,该项目允许使用 nsswitch 在所有系统程序中通过 mDNS 查找 *.local 主机名
A.B*_*.B. 11
使用 lpoptions
lpoptions -p <printer_name> | awk '{for (i=1; i<=NF; i++) {if ($i ~ /device-uri/) {print $i}}}'
Run Code Online (Sandbox Code Playgroud)
例子
$ lpoptions -p TOSHIBA_e-STUDIO2330C | awk '{for (i=1; i<=NF; i++) {if ($i ~ /device-uri/) {print $i}}}'
device-uri=socket://192.168.20.43
Run Code Online (Sandbox Code Playgroud)
获取概览 lpinfo
例子
$ lpinfo -v | grep -P '://'
network dnssd://HP%20LaserJet%201022n._pdl-datastream._tcp.local/
network dnssd://TOSHIBA%20e-STUDIO2540C-07279076._printer._tcp.local/
network socket://192.168.20.201
network socket://192.168.20.203
network socket://192.168.20.204
network socket://192.168.20.205
network socket://192.168.20.206
network socket://192.168.20.207
network socket://192.168.20.43
Run Code Online (Sandbox Code Playgroud)
或者 nmap
nmap -sT <adress_or_address_range>
Run Code Online (Sandbox Code Playgroud)
并grep服务 printer
例子
$ nmap -sT 192.168.20.43
Starting Nmap 6.47 ( http://nmap.org ) at 2015-07-03 08:38 CEST
Nmap scan report for 192.168.20.43
Host is up (0.0017s latency).
Not shown: 991 closed ports
PORT STATE SERVICE
21/tcp open ftp
25/tcp open smtp
80/tcp open http
139/tcp open netbios-ssn
445/tcp open microsoft-ds
515/tcp open printer
631/tcp open ipp
8080/tcp open http-proxy
9100/tcp open jetdirect
Run Code Online (Sandbox Code Playgroud)
小智 6
lpstat -s
Run Code Online (Sandbox Code Playgroud)
有时它不必很复杂。
查看arp-scan
命令(类似于ip neigh
)。您可能必须安装它:
sudo apt-get install arp-scan
Run Code Online (Sandbox Code Playgroud)
并提供进一步的细节:
sudo arp-scan --interface=eth0 --localnet
Run Code Online (Sandbox Code Playgroud)
其中 eth0 是您的设备(或 wlan0 或 wlp2s0)。您可以使用ifconfig
或找到您的设备:
ip -c addr
Run Code Online (Sandbox Code Playgroud)
或者尝试安装nmap
( sudo apt-get install nmap
) 并键入 nmap192.168.1.0/24
替换192.168.1
IP 地址的前三部分(使用 查找ip addr
)。
归档时间: |
|
查看次数: |
61726 次 |
最近记录: |