1. pakai script bash linux
#!/bin/bash
# Loop untuk semua alamat IP dalam subnet
for ip in $(fping -g 202.102.1.0/24 2>&1 | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' | sort -u); do
# Cek SNMP dengan snmpwalk dan ambil sysDescr
sysDescr=$(snmpwalk -v 2c -c public $ip 1.3.6.1.2.1.1.1 2>/dev/null | awk -F "STRING: " '{print $2}')
# Jika SNMP aktif dan sysDescr ditemukan, tampilkan hasilnya
if [ ! -z "$sysDescr" ]; then
echo "SNMP aktif (sysDescr) di: $ip - $sysDescr"
fi
done
2. ini versi lebih cepat dengan parallel
#!/bin/bash# Fungsi untuk memeriksa SNMP hanya sysDescrcheck_snmp() {ip=$1sysDescr=$(snmpwalk -v 2c -c public -r 1 -t 2 $ip 1.3.6.1.2.1.1.1 2>/dev/null | awk -F "STRING: " '{print $2}')if [ ! -z "$sysDescr" ]; thenecho "SNMP aktif (sysDescr) di: $ip - $sysDescr"fi}export -f check_snmp# Loop untuk semua alamat IP dalam subnetfping -g 103.102.12.0/24 2>/dev/null | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' | sort -u | parallel -j 10 check_snmp
3. versi dengan argument
ini ada tambahan nama perangkatnya dan pakai argument untuk subnet ipnya, untuk menjalankannya bash script.sh 102.0.0.0/24
#!/bin/bash# Mengecek apakah parameter subnet diberikanif [ -z "$1" ]; thenecho "Usage: $0 <subnet>"exit 1fi# Fungsi untuk memeriksa SNMP hanya sysDescr dan sysNamecheck_snmp() {ip=$1# Ambil sysDescrsysDescr=$(snmpwalk -v 2c -c public -r 1 -t 2 $ip 1.3.6.1.2.1.1.1 2>/dev/null | awk -F "STRING: " '{print $2}')# Ambil sysName (Nama perangkat/host)sysName=$(snmpwalk -v 2c -c public -r 1 -t 2 $ip 1.3.6.1.2.1.1.5 2>/dev/null | awk -F "STRING: " '{print $2}')# Jika SNMP aktif dan sysDescr ditemukan, tampilkan hasilnyaif [ ! -z "$sysDescr" ]; then# Menampilkan baik sysName dan sysDescrecho "SNMP $ip (sysName: $sysName, sysDescr: $sysDescr)"fi}export -f check_snmp# Mendapatkan subnet dari parameter yang diberikansubnet=$1# Loop untuk semua alamat IP dalam subnetfping -g $subnet 2>/dev/null | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' | sort -u | parallel -j 10 check_snmp
4. Versi pakai 2 argument:
bash script.sh 202.0.1.0/24 public
#!/bin/bash# Mengecek apakah parameter subnet dan komunitas SNMP diberikanif [ -z "$1" ] || [ -z "$2" ]; thenecho "Usage: $0 <subnet> <community>"exit 1fi# Fungsi untuk memeriksa SNMP hanya sysDescr dan sysNamecheck_snmp() {ip=$1community=$2# Ambil sysDescrsysDescr=$(snmpwalk -v 2c -c $community -r 1 -t 2 $ip 1.3.6.1.2.1.1.1 2>/dev/null | awk -F "STRING: " '{print $2}')# Ambil sysName (Nama perangkat/host)sysName=$(snmpwalk -v 2c -c $community -r 1 -t 2 $ip 1.3.6.1.2.1.1.5 2>/dev/null | awk -F "STRING: " '{print $2}')# Jika SNMP aktif dan sysDescr ditemukan, tampilkan hasilnyaif [ ! -z "$sysDescr" ]; then# Menampilkan baik sysName dan sysDescrecho "SNMP: $ip (sysName: $sysName, sysDescr: $sysDescr)"fi}export -f check_snmp# Mendapatkan subnet dan komunitas SNMP dari parameter yang diberikansubnet=$1community=$2# Loop untuk semua alamat IP dalam subnetfping -g $subnet 2>/dev/null | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' | sort -u | parallel -j 50 check_snmp {} $community