المبرمج العربي نشر 13 مايو 2016 أرسل تقرير نشر 13 مايو 2016 هل توجد مكتبة معينة في لغة بايثون لفحص المنافذ (البورتات)؟ وكيف أستطيع أن أستخدمها؟ أرجو أن تقدموا لي مثال بسيط على استخدامها. اقتباس
0 هشام رزق الله نشر 13 مايو 2016 أرسل تقرير نشر 13 مايو 2016 (معدل) تستطيع استخدام وحدة socket لفحص المنافذ باستخدام لغة بايثون فهذه الوحدة تُستخدم للتعامل مع الشبكات والمنافذ، وإليك هذا المثال البسيط باستخدام هذه الوحدة، حيث سيقوم البرنامج فحص جميع المنافذ المفتوحة لمُضيف معين (host): #!/usr/bin/env python import socket import subprocess import sys from datetime import datetime # Clear the screen subprocess.call('clear', shell=True) # Ask for input remoteServer = raw_input("Enter a remote host to scan: ") remoteServerIP = socket.gethostbyname(remoteServer) # Print a nice banner with information on which host we are about to scan print "-" * 60 print "Please wait, scanning remote host", remoteServerIP print "-" * 60 # Check what time the scan started t1 = datetime.now() # Using the range function to specify ports (here it will scans all ports between 1 and 1024) # We also put in some error handling for catching errors try: for port in range(1,1025): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) result = sock.connect_ex((remoteServerIP, port)) if result == 0: print "Port {}: Open".format(port) sock.close() 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() # Checking the time again t2 = datetime.now() # Calculates the difference of time, to see how long it took to run the script total = t2 - t1 # Printing the information to screen print 'Scanning Completed in: ', total ستجد المزيد من المعلومات حول هذه الوحدة في التوثيق الرسمي. المصدر تم التعديل في 13 مايو 2016 بواسطة هشام رزق الله اقتباس
0 عبدالهادي الديوري نشر 13 مايو 2016 أرسل تقرير نشر 13 مايو 2016 يُمكن استخدام الوحدة socket لفحص منفذ معيّن والتأكد من أنّه مفتوح أو مُغلق. المثال التّالي يفحص المنفذ رقم 80 لمُضيف موقع جوجل: import socket socket_connection = socket.socket(socket.AF_INET, socket.SOCK_STREAM) result = socket_connection.connect_ex(("google.com", 80)) print result يُمكن استبدال google.com بعنوان IP معيّن، ويُمكن كذلك استبدال 80 برقم المنفذ الذي ترغب بفحصه، ولفحص أكثر من منفذ يُمكن الاستعانة بحلقة for بسيطة. إذا كانت قيمة المُتغيّر result تُساوي 0 فهذا يعني بأنّ المنفذ مفتوح. اقتباس
السؤال
المبرمج العربي
هل توجد مكتبة معينة في لغة بايثون لفحص المنافذ (البورتات)؟ وكيف أستطيع أن أستخدمها؟ أرجو أن تقدموا لي مثال بسيط على استخدامها.
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.