# 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)





Post a Comment

0 Comments