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

السؤال

Recommended Posts

  • 0
نشر

وعليكم السلام ورحمة الله وبركاته.

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

ولكن كتابة تلك الإسكريبتات صعبة جدا حيث يجب عليك أن يكون لديك خبرة في الشبكات والبروتوكولات لتستطيع فهم الأكواد التي تقوم بكتابتها.

وستجد أن معظم الإسكريبتات الخاصة بالإختبراق والأدوات التي تفحص الشبكات هي مكتوبة بلغة بايثون .

فلو بحثت عن نظام تشغيل kali linux وهو النظام الشهير الخاص بالإختراق و إكتشاف الثغرات و التعامل مع الشبكات والأجهزة فأغلب الإسكريبتات التي به أو تجدها على الإنترنت هي بالبايثون .

ولتستطيع التعامل مع تلك الإسكريبتات وتشغيلها فالأفضل أن يكون لديك نظام تشغيل linux حيث الأمر صعب قليلا في ال windows وذلك لأنك ستحتاج إلى تحميل برامج إضافية وغيرها .

فمثلا لكتابة كود يفحص المستخدمين من الممكن أن تستخدم مكتبة nmap في بايثون ويمكنك تحميلها من خلال تنفيذ الأمر :

pip install python-nmap

بعد ذلك سيتوجب عليك تحميل nmap من الموقع الرسمي وتثبيته على الويندوز لديك ووضعه في متغيرات البيئة PATH .

بعد ذلك يمكنك إستخدام الكود التالي وستجده موجود على الإنترنت وتنفيذه :

import nmap

def scan_network(ip_range):
    nm = nmap.PortScanner()
    nm.scan(hosts=ip_range, arguments='-sn')

    devices = []
    for host in nm.all_hosts():
        devices.append({'ip': host, 'mac': nm[host]['addresses'].get('mac', 'غير معروف')})

    return devices

if __name__ == "__main__":
    ip_range = "192.168.1.0/24"
    devices = scan_network(ip_range)

    print(f"عدد الأجهزة المتصلة: {len(devices)}")
    for device in devices:
        print(f"IP: {device['ip']}, MAC: {device['mac']}")

وهنا سيتم طباعة عدد الأجهزة المتصلة بالشبكة الحالية وعنوان IP كل جهاز و عنوان ال MAC الخاص به.

  • 0
نشر

يوجد مكتبات مختلفة ذلك منها مكتبة scapy  فهي تُرسل حزم ARP إلى جميع العناوين في الشبكة المحلية ثم تُجمع الردود لتحديد الأجهزة النشطة.

أولاً تثبيت المكتبة:

pip install scapy

ثم استخدام الكود التالي:

from scapy.all import ARP, Ether, srp
import ipaddress


def scan_wifi_devices():
    subnet = "192.168.1.0/24"  # غيّر التالي
    arp = ARP(pdst=subnet)
    ether = Ether(dst="ff:ff:ff:ff:ff:ff")
    packet = ether/arp
    result = srp(packet, timeout=3, verbose=0)[0]

    devices = []
    for sent, received in result:
        devices.append({'IP': received.psrc, 'MAC': received.hwsrc})

    print(f"connected devices : {len(devices)}")
    for device in devices:
        print(f"IP: {device['IP']}, MAC: {device['MAC']}")


scan_wifi_devices()

وستحتاج إلى تغيير 192.168.1.0 حسب الشبكة لديك قم بكتابة ipconfig في منفذ الأوامر لو وجدت بجانب IPV4 address عنوان IP به 192.168.1.50 أي المختلف الرقم الأخير فاتركه كما هو لكن لو وجدت 192.168.0.50 أي المختلف الرقم قبل الأخير فقم بتغييره إلى 0 أو حسب الرقم الموجود لديك.

ثم تشغيل الكود وسيظهر عدد الأجهزة المتصلة وأرقام الـ MAC address الخاصة بهم. 

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...