# import socket dan sys
import socket
import sys
# fungsi utama
def main():
# buat socket bertipe TCP
soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# tentukan IP server target
host = "192.168.43.80"
# tentukan por server
port = 55555
# lakukan koneksi ke server
try:
soc.connect((host,port))
except:
# print error
print("Koneksi error")
# exit
sys.exit()
# tampilkan menu, enter quit to exit
print("Masukkan 'quit' untuk keluar")
message = input(" -> ")
# selama pesan bukan "quit", lakukan loop forever
while message != 'quit':
# kirimkan pesan yang ditulis ke server
soc.sendall(message.encode('utf8'))
# menu (user interface)
message = input(" -> ")
# send "quit" ke server
soc.send(b'--quit--')
# panggil fungsi utama
if __name__ == "__main__":
main()
# import socket dan sys
import socket
import sys
# fungsi utama
def main():
# buat socket bertipe TCP
soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# tentukan IP server target
host = "192.168.43.80"
# tentukan por server
port = 55555
# lakukan koneksi ke server
try:
soc.connect((host,port))
except:
# print error
print("Koneksi error")
# exit
sys.exit()
# tampilkan menu, enter quit to exit
print("Masukkan 'quit' untuk keluar")
message = input(" -> ")
# selama pesan bukan "quit", lakukan loop forever
while message != 'quit':
# kirimkan pesan yang ditulis ke server
soc.sendall(message.encode('utf8'))
# menu (user interface)
message = input(" -> ")
# send "quit" ke server
soc.send(b'--quit--')
# panggil fungsi utama
if __name__ == "__main__":
main()
# import os, re dan threading
import os,re,threading
# import time
import time
# buat kelas ip_check
class ip_check(threading.Thread):
# fungsi __init__; init untuk assign IP dan hasil respons = -1
def __init__ (self,ip):
threading.Thread.__init__(self)
self.ip = ip
self.__successful_pings = -1
# fungsi utama yang diekseskusi ketika thread berjalan
def run(self):
# lakukan ping dengan perintah ping -n (gunakan os.popen())
ping_out = os.popen("ping -n 2 " + self.ip,"r")
# loop forever
while True:
# baca hasil respon setiap baris
line = ping_out.readline()
# break jika tidak ada line lagi
if not line:
break
# baca hasil per line dan temukan pola Received = x
n_received = re.findall(received_packages, line)
# tampilkan hasilnya
if n_received:
self.__successful_pings = int(n_received[0])
# fungsi untuk mengetahui status; 0 = tidak ada respon, 1 = hidup tapi ada loss, 2 = hidup
def status(self):
# 0 = tidak ada respon
if self.__successful_pings == 0:
return "Tidak Ada Respon"
# 1 = ada loss
elif self.__successful_pings == 1:
return "Ada Loss"
# 2 = hidup
elif self.__successful_pings == 2:
return "Hidup"
# -1 = seharusnya tidak terjadi
else:
return "Seharusnya Tidak Terjadi"
# buat regex untuk mengetahui isi dari r"Received = (\d)"
received_packages = re.compile(r"Received = (\d)")
# catat waktu awal
waktu_awal = time.time()
# buat list untuk menampung hasil pengecekan
check_results = []
# lakukan ping untuk 20 host
for suffix in range(1,20):
# tentukan IP host apa saja yang akan di ping
ip = "192.168.43.80" + str(suffix)
# panggil thread untuk setiap IP
thread = ip_check(ip)
# masukkan setiap IP dalam list
check_results.append(thread)
# jalankan thread
thread.start()
# untuk setiap IP yang ada di list
for el in check_results:
# tunggu hingga thread selesai
el.join()
# dapatkan hasilnya
print(el.ip," : ",el.status())
# catat waktu berakhir
waktu_akhir = time.time()
# tampilkan selisih waktu akhir dan awal
print(waktu_akhir - waktu_awal)
0 Comments