niammuddin icon

get snmp

niammuddin | PRO | 12/06/24 11:32:41 AM UTC (Edited) | 0 ⭐ | 374 👁️ | Never ⏰ | []
Bash |

1.63 KB

|

None

|

0 👍

/

0 👎

#!/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 "+-------------------+---------------------------+--------------------------------+"

Comments