Python برمجة سكريبت فحص بورتات بايثون | Simple Port Scanner

تم تحميل الصفحة في 0,8051420 ثانية
برمجة سكريبت فحص بورتات بايثون | Simple Port Scanner
إنضم
2 نوفمبر 2012
المشاركات
3,405
الإعجابات
2,872
النقاط
113
العمر
30
الإقامة
Algeria


سنقوم اليوم ببرمجة سكريبت بسيط لفحص البورتات بواسطة مكتبة السوكيت, سنعتمد على بروتوكول TCP في هذه العملية, طبعا السكريبت بسيط جدا يمكنكم اضافة Threading
أو الخيوط وجعله سريع جدا ويفحص البورتات ب ثانية او ثانيتين فقط.




الشرح

استدعاء المكتبة

Python:
import socket
انشئ متغير واعطه قيمة تحمل الموقع الهدف

Python:
Host = "www.target-site.com"
سنقوم بتحويل الهوست او الموقع الى اي بي باستعمال الدالة gethostbyname

Python:
HostToIP  = socket.gethostbyname(Host)
هذا الكود مهم وربما ينتج عنه أخطاء لذلك وجب استعمال try

try:

الان ننشئ حلقة for loop بواسطتها نقوم بفحص البورتات

وسنمرر لها مجال بورتات كما نريد أنا وضعت كمثال من 20 الى 100 لان البورتات القياسية موجودة بكثرة بهذا المجال مثل بورت ftp 21 و بورت 22 ssh وبورت 25 smtp بورت telnet 23 و http 80 ...

Python:
    for port in range(20,100):
انشأنا كائن sock ومررنا له الدالة socket الموجودة بكلاس socket ومررنا للدالة بارمترين
الاول AF_INET بمعنى اننا نتصل ببروتوكول القديم ipv4
والثاني هو SOCK_STREAM ويعني انان نستعمل TCP
ان أردت استعمال udp فاستعمل socket.SOCK_DGRAM

Python:
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
الأن سنحدد مهلة اتصال صغيرة نصف ثانية 0.5 حتى لا ينتظر السكريبت الخاص بنا كثيرا, لأن الاتصال ربما قطع والسكريبت مازال ينتظر.

Python:
 sock.settimeout(0.5)


الان اهم دالة وهي دالة الاتصال او connect سنستعمل دالة connect_ex شبيهة بالدالة connect ولكنها تقوم بارجاع قيمة الخطأ
فمثلا اذا ارجعت القيمة 0 يعني ان البورت مفتوح وان ارجعت رقم اخر فمعناه ان البورت مغلق. وهذا هو لب الموضوع.
انشانا متغير result وهو يحمل القيمة العددية التي ترجعها الدالة

Python:
 result = sock.connect_ex((HostToIP, port))
اذاكان المتغير result هو صفر 0 اطبع لنا ان البورت مفتوح

Python:
        if result == 0:
            print "[+] Port {}:      Open".format(port)
ان كان المتغير result يحمل قيمة مختلفة عن الصفر 0 فالبورت مغلق
Python:
        else:
            print "[-] Port {}:      Closed".format(port)
الان انهي لنا الاتصال الخاص بالسوكيت

Python:
        sock.close()
except:
    pass



السكريبت كامل





نتائج الفحص






اتمنى كان الشرح سهل الفهم
بالتوفيق
 
إنضم
2 نوفمبر 2012
المشاركات
3,405
الإعجابات
2,872
النقاط
113
العمر
30
الإقامة
Algeria
أشعر بالفخر ولي الشرف لأني موجود بين أعضاء طيبين ومتواضعين مثلكم
كل الود والاحترام والتقدير لكم أساتذتنا
:l6::l6::l6:
 
إنضم
5 أغسطس 2011
المشاركات
3,076
الإعجابات
3,547
النقاط
123
العمر
23
الإقامة
][ الـمـمـلـكه الـعـربـيه الـسـعـوديـه ][
كود جميل و بسيط و ممكن بدل ما الtarget يدخل يدوي عن الطريق السكربت يضاف خاصيه انه المستخدم عن طريق raw_input هو الي يدخل الtarget
 
إنضم
2 نوفمبر 2012
المشاركات
3,405
الإعجابات
2,872
النقاط
113
العمر
30
الإقامة
Algeria
كود جميل و بسيط و ممكن بدل ما الtarget يدخل يدوي عن الطريق السكربت يضاف خاصيه انه المستخدم عن طريق raw_input هو الي يدخل الtarget
فعلا يمكن استعمال input

Python:
raw_input("Enter a remote host to scan: ")
واضافة خاصية التقاط الاخطاء أو ايقاف السكربت

Python:
except KeyboardInterrupt:
    print "You pressed Ctrl+C"
    sys.exit()

except socket.gaierror:
    print 'Hostname could not be resolved. Exiting'
    sys.exit()

except socket.error:
    print "Couldn't connect to server"
    sys.exit()
 
إنضم
2 نوفمبر 2012
المشاركات
3,405
الإعجابات
2,872
النقاط
113
العمر
30
الإقامة
Algeria

عـبـدالـله

.:: مُشرف قسم python ::.
rankrankrankrank
إنضم
5 ديسمبر 2013
المشاركات
1,715
الإعجابات
2,166
النقاط
198
الإقامة
webs1.net
وين مختفي ؟
اشتقنا لمواضيعك الرائعة اخي عبد الله

ظروف اخي سعيد لكنني متابع لكم من الموبايل لانني في دوله اخرى

وايضآ لدي اخوه في لله منومين بالمستشفى واتابع حالتهم واللبي طلباتهم

الحوادث اخذت شباب في عمر الزهور الله يكفينا شر الحوادث

لكن سأرجع ان شاء الله لدولتي واستمر في المشاركه معكم

حاليآ الظروف لا تسمح لي حتى بالاطلاع على شيء

الحمدلله على كل شيء

تحياتي لك اخي سعيد
 
إنضم
2 نوفمبر 2012
المشاركات
3,405
الإعجابات
2,872
النقاط
113
العمر
30
الإقامة
Algeria
ظروف اخي سعيد لكنني متابع لكم من الموبايل لانني في دوله اخرى

وايضآ لدي اخوه في لله منومين بالمستشفى واتابع حالتهم واللبي طلباتهم

الحوادث اخذت شباب في عمر الزهور الله يكفينا شر الحوادث

لكن سأرجع ان شاء الله لدولتي واستمر في المشاركه معكم

حاليآ الظروف لا تسمح لي حتى بالاطلاع على شيء

الحمدلله على كل شيء

تحياتي لك اخي سعيد
أهلا بأخي الحبيب عبد الله:637481:

أسال الله العظيم رب العرش العظيم ان يشفيهم شفاءاً لا يغادر سقماً

وأن يعينك على رعايتهم ويعظم أجرك ويفرج عنك وان تعود لبلدك ومحبيك من ابناء وطنك وانت بألف خير

تحياتي لك :38:
 

Backspace !

Beginner Developer
rank
إنضم
4 أبريل 2013
المشاركات
120
الإعجابات
77
النقاط
48
سبحان الله في ناس عندهم موهبة أيصال المعلومه بطريقه سهله وواضحه مجهود تشكر عليه TITANIUM

وجاري التطبيق والحفظ :)
 
إنضم
2 نوفمبر 2012
المشاركات
3,405
الإعجابات
2,872
النقاط
113
العمر
30
الإقامة
Algeria
سبحان الله في ناس عندهم موهبة أيصال المعلومه بطريقه سهله وواضحه مجهود تشكر عليه TITANIUM

وجاري التطبيق والحفظ :)
الله يحفظك ويبارك فيك أخي على كلماتك الطيبة وشهادتك التي اعتز بها
وفقك الله.
 

tareqahmed

Beginner Developer
rank
إنضم
9 أبريل 2019
المشاركات
8
الإعجابات
7
النقاط
3
العمر
39
السلام عليكم ممكن اتواصل معك عندي استفسار برنامج محتاج اعدل عليه
 

الأعضاء النشطين حاليآ الذين يشاهدون هذا الموضوع (1 عضو و 0 ضيف)

خيارات الاستايل

نوع الخط
مودك
اخفاء السايدر بار OFF
توسيط المنتدى OFF
فصل الأقسام OFF
الأقسام الفرعية OFF
عرض المشاركات
حجم الخط
معلومات العضو OFF
إخفاء التوقيع OFF

إرجاع خيارات الإستايل