پروژه ی ارسالی - اسکریپت Ping Sweep به صورت گرافیکی ! :: Mr Python | مستر پایتون

پروژه ی ارسالی - اسکریپت Ping Sweep به صورت گرافیکی !

  • ۳۳۹
فرستنده : Ali Zabetpoor
نام پروژه  اسکریپت Ping Sweep به صورت گرافیکی
دسته بندی : python
توضیحات : Ping Sweep یکی از روش های اسکن آیپی های فعال (Live) در یک شبکه هستش . این اسکریپت عمل Ping Sweep رو با رابط کاربری گرافیکی انجام میده .

 

نکته : مستر پایتون هیچ تغییری در سورس کد های ارسالی ایجاد نخواهد کرد و سورس کد مستقیما نوشته خود شخص فرستنده است . 

 

توضیحات MrPython در مورد پروژه :در این پروژه برای طراحی رابط کاربری گرافیکی از کتابخونه ی pySimpleGUI و برای اسکن شبکه با روش Ping Sweep از کتابخونه ی Scapy استفاده شده . پروژه ، رابط گرافیکی ساده و کاربردی داره . 

 

برای اجرای صحیح اسکریپت باید کتابخونه ی Scapy و pySimpleGUI رو نصب کنید . 

pip install pySimpleGUI
pip install scapy

 

سورس : 

from scapy.all import sr1,ICMP,IP
import PySimpleGUI as sg
import threading


sg.theme("DarkBlue3")

def check_ip(start,end,networkrange,stop):
    
    window.refresh()
    window["progress"].UpdateBar(0,max=end-start)
    timeout=1
    window["-output-"].update("")
    i=0
    for host in range(start,end):
        if stop():
            break
        ip=networkrange+str(host)
        try:
            packet=IP(dst=ip) / ICMP()
            response=sr1(packet,timeout=timeout,verbose=0)
        except:
            break
        window["progress"].UpdateBar(i+1)
        i+=1
        if response:
            if response[ICMP].type==0:
                
                window["-output-"].print(f"{ip} is live")
                window.refresh()
    window.write_event_value("-end-task-","the thread has been end")

layout=[
        [sg.Text("give me network range:",font="Arial",border_width=2),sg.InputText("192.168.1.",font="Arial 12",key="-networkrange-")],
        [sg.Text("give me start number:",font="Arial",border_width=2),sg.InputText("1",font="Arial 12",key="-start-")],
        [sg.Text("give me end number:",font="Arial",border_width=2),sg.InputText("255",font="Arial 12",key="-end-")],
        [sg.Button("check ip",key="-check-ip-",font="Arial",size=(10,1)),sg.Button("stop",font="Arial",size=(10,1),key="-stop-")],
        [sg.Text("",visible=False,key="txt1",font='Arial',size=(20,20))],
        [sg.ProgressBar(2,orientation="h",size=(20,20),key="progress")],
        [sg.Multiline("",size=(30,10),font="Arial",auto_size_text=True,key="-output-",justification="left")],
]


stop_thread=False
window=sg.Window("PingSweep",layout,size=(500,300),element_justification="c")
thread=None
while True:
    event,inputstr=window.read()
    if event==sg.WIN_CLOSED:
        break
    elif event=="-stop-" and thread:
        stop_thread=True
    elif event=="-check-ip-" and not thread and \
        inputstr["-start-"].isdigit() and \
        inputstr["-end-"].isdigit() and \
        not inputstr["-networkrange-"].isalnum()    :

        start_range,end_range,networkrange=int(inputstr["-start-"])\
            ,int(inputstr["-end-"]),inputstr["-networkrange-"]
        thread=threading.Thread(target=check_ip,args=(start_range,end_range,networkrange,lambda : stop_thread),daemon=True)
        thread.start()
    elif event=="-end-task-":
        thread=None
        stop_thread=False
        
    
window.close()

 

جهت ارسال پروژه های خود :

پروژه ی خود به همراه توضیح آن  ارسال کنید به  : 

mrpythonblog@gmail.com


 Telegram Channel : @mrpythonblog

نظرات: (۰) هیچ نظری هنوز ثبت نشده است
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی