Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Mengecek apakah parameter subnet dan komunitas SNMP diberikan
- if [ -z "$1" ] || [ -z "$2" ]; then
- echo "Usage: $0 <subnet> <community>"
- exit 1
- fi
- # Menampilkan informasi pemindaian
- echo "Memulai pemindaian di subnet $1 dengan community string $2"
- echo "+-------------------+---------------------------+--------------------------------+"
- echo "| IP Address | sysName | sysDescr |"
- echo "+-------------------+---------------------------+--------------------------------+"
- # Fungsi untuk memeriksa SNMP hanya sysDescr dan sysName
- check_snmp() {
- ip=$1
- community=$2
- # Ambil sysDescr dengan timeout yang lebih cepat (1 detik) dan hanya mengambil informasi yang dibutuhkan
- sysDescr=$(snmpwalk -v 2c -c $community -r 1 -t 1 $ip 1.3.6.1.2.1.1.1 2>/dev/null | awk -F "STRING: " '{print $2}')
- # Ambil sysName dengan cara yang sama
- sysName=$(snmpwalk -v 2c -c $community -r 1 -t 1 $ip 1.3.6.1.2.1.1.5 2>/dev/null | awk -F "STRING: " '{print $2}')
- # Jika SNMP aktif dan sysDescr ditemukan, tampilkan hasilnya
- if [ ! -z "$sysDescr" ]; then
- # Menampilkan hasil dalam format tabel menggunakan printf
- printf "| %-17s | %-25s | %-30s |\n" "$ip" "$sysName" "$sysDescr"
- fi
- }
- export -f check_snmp
- # Mendapatkan subnet dan komunitas SNMP dari parameter yang diberikan
- subnet=$1
- community=$2
- # Loop untuk semua alamat IP dalam subnet, hanya yang merespons
- fping -a -g $subnet -q 2>/dev/null | parallel -j 50 check_snmp {} $community
- # Menutup garis pemisah
- echo "+-------------------+---------------------------+--------------------------------+"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement