
我正在嘗試建立一個腳本來獲取網路上無線印表機的所有 IP 位址。問題是我不知道從哪裡開始,我已經研究過 CUPS,但每個文檔或教程在繼續使用 Web 介面之前都只介紹了命令行,他們從未提到如何通過以下方式查找 IP只使用CLI,有什麼想法嗎?
答案1
根據這個「Unix & Linux Stack Exchange」上的問答主題您只能透過以下方式取得已安裝印表機的列表lpstat -s
sudo
或與( )一起使用sudo lpstat -s
來取得完整的設備路徑。或者也許使用nmap -A
?
綜上所述,也許使用arp
和grep
和sed
用管道 ( |
) 連結在一起可以像這樣運作:
arp -a | grep Printer | awk '{ print $2 }' | sed 's/[()]//g'
該命令分解如下:
arp -a
會顯示所有的 arp 流量。grep Printer
將解析輸出中包含名稱arp -a
的行。Printer
awk '{ print $2 }'
取得 IP 位址,但用括號 ((
/)
) 括起來。sed 's/[()]//g'
然後清理 IP 位址以刪除括號。
也就是說,我沒有一種簡單的方法來在我的本地設定上測試這個概念,因為我的網路上甚至沒有一台 Wi-Fi 印表機,但我認為它會起作用。也許grep
參數應該調整為“印表機”或“列印”;我不確定。這些主要是集思廣益的想法,希望能幫助您解決這個問題,或至少讓您走上正確的道路。
答案2
lpinfo怎麼樣(需要安裝CUPS)
(這裡使用Perl來過濾掉其他東西)
參見這裡
$ sudo lpinfo -l -v | perl -ne 'print if /^Device: uri = socket:/ .. /info/'
裝置:uri = 套接字://192.168.0.3
類別 = 網路
資訊 = Officejet J6400 系列
裝置:uri = 套接字://192.168.0.5:9100
類別 = 網路
資訊 = HP Officejet Pro 8610