ماسح ضوئي للمنافذ بلغة بايثون _ امثلة بايثون

ملخص

سيوضح هذا المنشور كيف يمكنك إنشاء برنامج ماسح ضوئي صغير وسهل الاستخدام للمنافذ مكتوب بلغة Python. هناك العديد من الطرق للقيام بذلك باستخدام Python ، وسأقوم بذلك باستخدام مقبس الوحدة النمطية المدمج.

مآخذ

توفر وحدة المقبس في Python الوصول إلى واجهة مقبس BSD. يتضمن فئة المقبس ، لمعالجة قناة البيانات الفعلية ، ووظائف المهام المتعلقة بالشبكة مثل تحويل اسم الخادم إلى عنوان وتنسيق البيانات لإرسالها عبر الشبكة.

مصدر تُستخدم المآخذ على نطاق واسع على الإنترنت ، لأنها وراء أي نوع من اتصالات الشبكة التي يقوم بها جهاز الكمبيوتر الخاص بك.

تمثل مآخذ INET ما لا يقل عن 99٪ من المقابس المستخدمة. يفتح متصفح الويب الذي تستخدمه مقبسًا ويتصل بخادم الويب.

أي اتصال شبكة يمر عبر مقبس.

لمزيد من القراءة حول وحدة المقبس ، يرجى الاطلاع على الرسمية توثيق.

وظائف المقبس

قبل أن نبدأ مع برنامجنا النموذجي ، دعنا نرى بعض وظائف المقبس التي سنستخدمها.


Syntax for creating a socket
sock = socket.socket (socket_family, socket_type)

Creates a stream socket
sock = socket.socket (socket.AF_INET, socket.SOCK_STREAM)

AF_INET 
Socket Family (here Address Family version 4 or IPv4) 

SOCK_STREAM Socket type TCP connections 

SOCK_DGRAM Socket type UDP connections 

Translate a host name to IPv4 address format 
gethostbyname("host") 

Translate a host name to IPv4 address format, extended interface
socket.gethostbyname_ex("host")  

Get the fqdn (fully qualified domain name)
socket.getfqdn("8.8.8.8")  

Returns the hostname of the machine..
socket.gethostname()  

Exception handling
socket.errorCode language: JavaScript (javascript)
عمل برنامج باستخدام Python Sockets

كيفية عمل برنامج ماسح ضوئي بسيط للمنافذ في بايثون.

سيحاول برنامج الماسح الضوئي الصغير هذا الاتصال بكل منفذ تحدده لمضيف معين. أول شيء يجب علينا القيام به هو استيراد مكتبة المقبس والمكتبات الأخرى التي نحتاجها.

افتح محرر نصوص ، انسخ والصق الرمز أدناه.

احفظ الملف باسم: “ortscanner.py “واخرج من المحرر

#!/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

Code language: PHP (php)

إخراج العينة

لنقم بتشغيل البرنامج ونرى كيف يمكن أن تبدو المخرجات

$ python portscanner.py

Enter a remote host to scan: www.your_host_example.com
------------------------------------------------------------
Please wait, scanning remote host xxxx.xxxx.xxxx.xxxx
------------------------------------------------------------

Port 21:   Open
Port 22:    Open
Port 23:    Open
Port 80:    Open
Port 110:   Open
Port 111:   Open
Port 143:   Open
Port 443:   Open
Port 465:   Open
Port 587:   Open
Port 993:   Open
Port 995:   Open

Scanning Completed in:  0:06:34.705170

تنصل

هذا البرنامج مخصص للأفراد لاختبار أجهزتهم الخاصة من حيث الأمان الضعيف ، ولن يتحمل المؤلف أي مسؤولية إذا تم استخدامه لأي استخدام آخر

لا يوجد اعجابات