-->

Cara menggunakan Python untuk ping ke semua IP Address di suatu jaringan


Mungkin sebetulnya ada banyak tool yang telah dibuat yang bisa membantu anda untuk memastikan status resource pada jaringan seperti observium, nms, zabbix, zenos, dll. Namun kali ini saya bawakan yang mungkin cukup sesuai dengan kebutuhan anda yaitu cara menggunakan Python untuk ping ke semua IP Address di jaringan.

Perlu dipahami juga sebelumnya Verifying Connectivity.

Nah, OS yang kali ini saya pakai adalah berbasis Linux. Akan tetapi tidak menutup kemungkinan apabila anda bisa mencobanya menggunakan Windows.


Berikut caranya :

  • Pertama, install dulu python 3. Di Linux, anda bisa jalankan perintah ini di terminal. 
sudo apt install python3

  • Setelah itu buatlah sebuah folder yang anda beri nama pingtool. Di dalamnya buatlah sebuah file dengan nama ping.py
  • Lalu, di dalam file tersebut pada baris pertama-tama, ambillah modul subprocess dan ipaddress dengan mengetikkan seperti di bawah ini.
import subprocess
import ipaddress



Setiap program yang berjalan di komputer adalah suatu process. Sebuah process dapat membuat process-process baru menggunakan fungsi library seperti subprocess. Akan tetapi, process-process baru ini dibuat oleh subprocess yang berjalan secara independent dari process yang original dengan tempatnya sendiri. Jadi modul subprocess itu digunakan untuk membuat process baru, mengambil input dan output error pipe dan juga mengambil return codenya. Kita memerlukan subprocess ini untuk membuat sebuah process untuk perintah ping.

  • Modul ipaddress membantu untuk memeriksa dan memanipulasi IP Address. Ada sedikit penjelasan dalam hal ini.
Lanjutan dari code di atas, untuk membuat IP Network dengan modul ketikkan seperti di bawah. Ini tergantung dari IP pada jaringan anda, anda bisa ganti dan sesuaikan dengan IP Network anda.

ipaddress.ip_network('192.168.0.0/24')

Lalu untuk mengetahui alamat-alamat yang ada di jaringan, anda bisa tambahkan variabel seperti ini.

network = ipaddress.ip_network('192.168.0.0/24')


Kemudian untuk mencetak seluruh IP Address pada jaringan, anda bisa tambahkan perulangan seperti ini.

network = ipaddress.ip_network('192.168.0.0/24')
for i in network.hosts():
    i = str(i)
    print(i)

Bisa anda temukan point pentingnya tentang mekanisme di atas?
Oke kita lanjutkan dulu, agar bisa disesuaikan dengan code berikutnya, kita hilangkan dulu print(i) nya.


  • Karena kita akan menginisiasi pipe streams pada sebuah process, jadi pada barisan setelah import ipaddress kita tambahkan Popen dan PIPE.

from subprocess import Popen, PIPE


  • Di baris bawahnya lagi masih di dalam syntax for, kali ini kita eksekusi perintah ping dengan menggunakan Class Popen dari modul subprocess.

    toping = subprocess.Popen(['ping','-c','3',i], stdout=PIPE)

Apabila anda menggunakan Windows, tukarkan -c dengan -n. Konstruktor -c berfungsi mengeluarkan echo request sebanyak 3 kali.

  • Lalu kita pertemukan pada return code (masih di dalam syntax for).

    output = toping.communicate()[0]
    hostalive = toping.returncode


  • Terakhir, saatnya kita cetak statusnya (masih di dalam syntax for).

    if hostalive == 0:
        print(i, "is reachable")
    else:
        print(i, "is not reachable")

Untuk lebih jelas script secara lengkapnya seperti di bawah ini :

import subprocess
import ipaddress
from subprocess import Popen, PIPE

network = ipaddress.ip_network('192.168.0.0/24')
for i in network.hosts():
    i = str(i)
    toping = subprocess.Popen(['ping','-c','3',i], stdout=PIPE)
    output = toping.communicate()[0]
    hostalive = toping.returncode
    if hostalive == 0:
        print(i, "is reachable")
    else:
        print(i, "is not reachable")


  • Untuk menjalankan script tersebut, pindah dulu ke directory dimana anda meletakkan file tersebut dan jalankan scriptnya melalui terminal.

cd pingtool
python3 ping.py

Hasilnya anda bisa lihat ada beberapa perangkat yang sedang terhubung ke jaringan yang sama.




Sekian dari saya, semoga bermanfaat.
Terimakasih.






2 Responses to "Cara menggunakan Python untuk ping ke semua IP Address di suatu jaringan"

  1. wow, great, I was wondering how to cure acne naturally. and found your site by google, learned a lot, now i’m a bit clear. I’ve bookmark your site and also add rss. keep us updated. Cliquez-ici

    ReplyDelete
  2. I visit your blog regularly and recommend it to all of those who wanted to enhance their knowledge with ease. The style of writing is excellent and also the content is top-notch. Thanks for that shrewdness you provide the readers! https://192-168-i-i.com/

    ReplyDelete

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel