を使用して、Ubuntu 14.04 マシンにネットワーク プリンターをインストールしましたsystem-config-printer
。この GUI プログラムは、ローカル ネットワークを検索する「ネットワーク プリンターの検索」機能を提供します。IP アドレスに関連付けられたプリンター名のリストを返します。
では、1つ選択して正常にインストールしたとします。
しばらくして、インストールしたプリンターが間違っていることに気付きました。そこで、もう一度同じ手順を実行してみるのですが... ああ、同じタイプ (および名前) で、IP アドレスが異なるプリンターが複数あるのです!
はい、問題ありません。今インストールしたものの IP を確認して、間違ったものを再度インストールしないようにします。それでは質問です:インストールされているプリンターの IP を取得するにはどうすればよいですか?
どうやら、「プロパティ」ダイアログ (以下のサンプル) ではこの情報にアクセスできないようです (URI 行に隠されているわけではありません)。
経由で CUPS Web サーバーを使用しても成功しませんでしたhttp://localhost:631
。基本的には同じ情報を取得する別の方法のようです。
編集: 質問は以下のプリンターとは関係ありませんが、より一般的なものです。OS はネットワーク探索の段階でプリンターの IP を取得できるため、その情報はどこかに保存されていると想定しています。どこに保存され、どのようにアクセスすればよいですか?それとも、どこにも保存されていないのでしょうか?
答え1
拡大する上記の@JUHの解決策...
avahi-browse --all -t -r
自動検出プリンターに適したソリューションです。
残念ながら、多くのプリンターは、エンドユーザーに対して IP アドレスを使用可能な形式で公開しません。これは設計によるものです。https://www.cups.org/doc/network.html
ほとんどのネットワーク プリンタは、Bonjour と呼ばれるプロトコルをサポートしています。これは、TCP/IP や現在使用されているすべてのネットワークを定義したグループと同じ、インターネット技術タスク フォース (IETF) によって公開されたゼロ構成ネットワーク
ZeroConf
( )、マルチキャスト DNS (mDNS
)、および DNS サービス検出 (DNS-SD
) 標準の組み合わせです。
mDNS ページからの引用:
mDNS クライアントがホスト名を解決する必要がある場合、その名前を持つホストに自身の識別を要求する IP マルチキャスト クエリ メッセージを送信します。次に、そのターゲット マシンは、その IP アドレスを含むメッセージをマルチキャストします。その後、そのサブネット内のすべてのマシンはその情報を使用して、mDNS キャッシュを更新できます。どのホストも、存続時間 (
TTL
) がゼロの応答パケットを送信することで、名前に対する権利を放棄できます。
したがって、mDNS プリンターの IP アドレスを正しく見つけるには、キャッシュを読み取ることができるツールが必要になります。
OP のコメントの 1 つを引用します。
ありがとうございます。私の場合、
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 のほとんどの使用に必要ですが、に配置された XML サービス定義を使用してサービスを公開できます
/etc/avahi/services
。
nss-mdns
nsswitch を使用するすべてのシステム プログラムで mDNS 経由で *.local ホスト名のホスト名検索を可能にするプロジェクトも参照してください。
答え2
使用lpoptions
lpoptions -p <printer_name> | awk '{for (i=1; i<=NF; i++) {if ($i ~ /device-uri/) {print $i}}}'
例
$ 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
概要を知るには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
またはnmap
nmap -sT <adress_or_address_range>
サービスを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
答え3
HP Laserjet 2400 シリーズのユーザー ガイドによると、IP アドレスはプリンタ自体のコントロール パネルで確認できます。
答え4
見てくださいarp-scan
指示( と同様ip neigh
)。おそらくインストールする必要があるでしょう:
sudo apt-get install arp-scan
さらに詳しく説明すると:
sudo arp-scan --interface=eth0 --localnet
ここで、eth0 はデバイスです (または wlan0 または wlp2s0)。デバイスは、ifconfig
またはで見つけることができます。
ip -c addr
または、nmap
( ) をインストールして、 IP アドレスの最初の 3 つの部分を置き換えてsudo apt-get install nmap
nmap と入力してください ( を使用して調べてください)。192.168.1.0/24
192.168.1
ip addr