اذهب إلى المحتوى
  • 0

كيف أفحص المنافذ باستخدام لغة بايثون؟

المبرمج العربي

السؤال

هل توجد مكتبة معينة في لغة بايثون لفحص المنافذ (البورتات)؟ وكيف أستطيع أن أستخدمها؟ أرجو أن تقدموا لي مثال بسيط على استخدامها.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

تستطيع استخدام وحدة 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

ستجد المزيد من المعلومات حول هذه الوحدة في التوثيق الرسمي.

المصدر

تم التعديل في بواسطة هشام رزق الله
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

يُمكن استخدام الوحدة 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 فهذا يعني بأنّ المنفذ مفتوح.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...