Apa cara terbaik untuk menemukan printer di jaringan saya dengan nmap? Apakah mungkin untuk menyimpan printer ip ke file?
networking
Niklas
sumber
sumber
Jawaban:
Jika Anda ragu melakukan Sidik Jari OS karena alasan tertentu, Anda dapat melakukan pemindaian port yang lebih bertarget:
Itu akan memindai port umum untuk printer dan sistem pencetakan.
Output dalam XML.
sumber
Balasan ini menjawab pertanyaan pertama Anda secara langsung. Untuk pertanyaan kedua, memahami perintah akan membiarkan Anda juga memasukkan alamat IP printer ke file. Jadi di sini kita mulai:
nmap -p 515,631,9100 -oG - 10.81.129.0/24 | gawk '/open/{print $2}' | xargs --delimiter='\n' nmap -sU -p 161 -oG - | gawk '/open/{print $2}' | xargs --replace=$ipaddress snmpget -v 1 -O v -c public $ipaddress system.sysDescr.0 | sed 's/STRING:\s//'
Deskripsi proses
Perintah rusak
nmap - Pemindaian jaringan. ( Nmap.org )
-p 515,631,9100
Pindai TCP Port 515, 631 dan 9100.-oG -
Gunakan format output grep-mampu.-sU -p 161
Pindai port UDP 161.gawk or awk - Memproses data teks berorientasi kolom. Secara default, spasi putih memisahkan garis menjadi kolom. ( Wikipedia )
gawk '/regexp/'
Gunakan ekspresi regulair dengan gawk untuk memfilter garis yang cocok dengan ekspresi regulair ini.gawk '{<code>}'
Gunakan bahasa input mirip-C awk untuk memanipulasi output.gawk '{/open/print $2}'
Cari baris yang cocok dengan "terbuka" dan cetak kolom kedua.xarg - Membangun dan menjalankan perintah dari input yang diberikan. Secara default spasi putih memisahkan baris menjadi argumen. ( Wikipedia )
--delimiter='\n'
Pisahkan argumen per baris baru (\ n) alih-alih spasi putih.--replace=$ipaddress
Untuk setiap baris, simpan argumen ke $ ipaddress .snmpget atau snmpwalk - Gunakan permintaan SNMP GET untuk menanyakan informasi tentang entitas jaringan. ( net-snmp.org , lebih lanjut tentang SNMP di Wikipedia )
-c public
Setel string komunitas ke publik.-v 1
Setel versi SNMP ke 1.-O v
Jangan cetak OID.system.sysDescr.0
Variabel ke kueri. Deskripsi variabel khusus ini: "Deskripsi tekstual entitas. Nilai ini harus mencakup nama lengkap dan identifikasi versi dari jenis perangkat keras sistem, sistem operasi perangkat lunak, dan perangkat lunak jaringan. Ini wajib bahwa ini hanya berisi karakter ASCII yang dapat dicetak. "sed - Memilah dan mengubah teks. ( Wikipedia )
's/day/night/'
Temukan kemunculan pertama string day dalam satu baris, dan gantilah dengan malam.'s/STRING:\s//'
Temukan STRING: dan ganti dengan apa pun. Ini menghapus STRING: dari input. \ s singkatan spasi a.Ada beberapa perintah yang didukung UNIX yang terlibat. Secara pribadi saya membuat rantai ini bekerja pada mesin Windows menggunakan Cygwin untuk mendapatkan perintah-perintah itu.
sumber
nmap -p 515,631,9100 -oG - 192.168.100.0/24 | gawk '/open/{print $2}' | xargs --delimiter='\n' nmap -sU -p 161 -oG - | gawk '/open/{print $2}' | xargs -I{} sh -c 'echo {} ; snmpget -v 1 -O v -c public {} system.sysDescr.0' | sed 's/STRING:\s//'
Cara termudah adalah memindai dengan
nmap -O
: nmap biasanya akan menentukan dengan benar apakah sebuah mesin adalah printer atau tidak berdasarkan OS.Seharusnya membuatnya menjadi satu entri per baris dan membuangnya ke file yang disebut "outfile". Jelas mengubah rentang ip ke rentang apa pun yang Anda pindai
sumber