1 ارسال در این موضوع قرار دارد

سلام به عنوان اولین تاپیک گفتم ساخت یه پورت اسکنر ساده رو  با پایتون در  4 مرحله  اموزش بدم

خب همونطور که میدونین یک هکر باید تا جایی که امکانش هست و وقت داره ابزارهاش رو خودش درست کنه و این یکی از ویژگی های یک هکر حرفه ای هست(فقط هکر نه،  خیلی از افرادی که ادعای برنامه نویسی یا مسلط بودن دارن با اینکه میتونن بسازن اما  به خودشون زحمت نمیدن و این خوب نیست ) و یه عذزخواهی کنم چون به دلایلی نتونستم به صورت تصویری یا فیلم بزارم اما حیفم اومد نزارم...

 

*************************************************************************************************************************

*ورژنی که استفاده میشه 3.7 هست

*توی پایتون فاصله ها یا همون indentation خیلی مهم هستن من توی کد های پایین رعایت کردم پس شما هم حواستون باشه

*************************************************************************************************************************

 

1:

اول از همه باید کتابخونه های مورد نیاز رو اضافه کنیم با دستور import  و یه while  تعریف کنیم که بتونیم هرچقدر خواستیم برنامه رو تکرار کنیم یا یک تابع تعریف کنیم که من راه اول رو رفتم

import socket
import sys
import os
from datetime import datetime
ans = 'y'
clear = lambda: os.system('clear')# <- لینوکس
clear = lambda: os.system('cls')#<- ویندوز
while(ans=='y')  :
    clear()

اینکه هر کتابخونه چیکار میکنه خودتون توی ادامه کار میبینید

کدی که توی خط 6 میبینید واسه راحت تر شدن کارمون هست که هرجا از برنامه خواستیم صفحه رو پاک کنیم فقط ()clear را تایپ کنیم  که این کد در ویندوز و لینوکس فرق میکنه

 

2:

خب حالا باید ای پی یا دامنه رو از کاربر بگیریم و بگیم اگر دامنه بود اون رو به ای پی تبدیل کن (خط دوم)

    ip = input("Enter ip or Domain : ")
    host_ip = socket.gethostbyname(ip)

 

3:

الان باید اون پورت هایی رو که میخوایم تست کنیم باز هست یا نه رو یا توی خود برنامه تعریف کنیم یا اینکه به عنوان ورودی بگیریم(دومی رو پیشنهاد میدم) پس اینجا باید یه سوال بزاریم که میخوای خودت پورت وارد کنی یا نه...

    an=input("do you choise your ports?? y/n \n")
    if(an=="y"):
        clear()
        a=int(input("Enter start port : \n "))
        b=int(input("Enter End port : \n "))
    else:
        a=20
        b=1024  
    clear()
    print("-"*55)# <-واسه قشنگ شدن برنامه
    print("Scanning * {} * Please Wait".format(host_ip))
    print("-"*55)# <-واسه قشنگ شدن برنامه
    t1 = datetime.now()

اینجا یه توضیح بدم که خط اول که سوال میکنیم میخوای پورت هات رو خودت انتخاب کنی یا نه و میگیم اگه جواب  y بود که میگیم پورت ها رو وارد کن و اگه n بود یه رنج پورت از 20 تا 1024 بهش میدیم(میتونین تغیییر بدین) و خط اخر هم واسه اینه که یه زمان از الان بزنه و نگهداره واسه اینکه در اخر کار بفهمیم اسکن ما چقدر طول کشید

 

4:

و مرحله اخر هم که خود عملیات هست که دیگ توضیح الکی نمیدم طولانی نشه

    try:
        for port in range (a,b):
            sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            result = sock.connect_ex((host_ip,port))
            if result == 0 :
                print("port {} :   open ".format(port))
            sock.close()
        t2 = datetime.now()
        t3 = t2-t1
        print("scan Finished in : ",t3)
        ans = input("\n Try Again ??  y/n \n")
        if(ans=="n"):
            sys.exit()
        
    except KeyboardInterrupt:      
        print("incorrect :/")
        sys.exit()

خب و اخرین چیز اینکه میتونین خودتون قشنگ ترش کنین مثلا رنگ بهش بدید یا اینکه اولش یه متن بزنین Port Scanner یه نمونش این :

print('''
_____           _      _____                                 
|  __ \         | |    / ____|                                
| |__) |__  _ __| |_  | (___   ___ __ _ _ __  _ __   ___ _ __ 
|  ___/ _ \| '__| __|  \___ \ / __/ _` | '_ \| '_ \ / _ \ '__|
| |  | (_) | |  | |_   ____) | (_| (_| | | | | | | |  __/ |   
|_|   \___/|_|   \__| |_____/ \___\__,_|_| |_|_| |_|\___|_|        ''')         
                                                             

سوال یا مشکلی بود بگید جواب میدم...❤️

یه نمونه رو هم پیوست کردم

portscanner.py

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال دیدگاه یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید دیدگاهی ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در سایت ما ثبت نام کنید. عضویت خیلی ساده است !

ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید

ورود به حساب کاربری