import scapy.all as scapy
import socket
def get_gateway_ip():
"""جلب عنوان الآي بي الخاص بالراوتر تلقائياً"""
try:
# إنشاء اتصال وهمي لمعرفة الآي بي المحلي
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("8.8.8.8", 80))
ip = s.getsockname()[0]
s.close()
# تحويل الآي بي مثل 192.168.1.5 إلى 192.168.1.1/24
return ".".join(ip.split('.')[:-1]) + ".1/24"
except Exception:
return "192.168.1.1/24"
def scan(ip):
"""إرسال طلبات ARP للكشف عن الأجهزة"""
print(f"🔎 جاري فحص الشبكة: {ip} ...\n")
# إنشاء حزمة ARP طلب (من يسكن هنا؟)
arp_request = scapy.ARP(pdst=ip)
# إنشاء حزمة Broadcast (إرسال للجميع)
broadcast = scapy.Ether(dst="ff:ff:ff:ff:ff:ff")
# دمج الحزمتين
arp_request_broadcast = broadcast/arp_request
# إرسال الحزمة واستقبال الردود
answered_list = scapy.srp(arp_request_broadcast, timeout=2, verbose=False)[0]
clients_list = []
for element in answered_list:
client_dict = {"ip": element[1].psrc, "mac": element[1].hwsrc}
clients_list.append(client_dict)
return clients_list
def display_result(results_list):
"""عرض النتائج بشكل منظم"""
print("-----------------------------------------")
print("IP Address\t\tMAC Address")
print("-----------------------------------------")
for client in results_list:
print(f"{client['ip']}\t\t{client['mac']}")
print("-----------------------------------------")
print(f"✅ تم العثور على {len(results_list)} جهاز متصل.")
تشغيل الأداة
target_ip = get_gateway_ip()
scan_result = scan(target_ip)
display_result(scan_result)
import scapy.all as scapy
import socket
def get_gateway_ip():
"""جلب عنوان الآي بي الخاص بالراوتر تلقائياً"""
try:
# إنشاء اتصال وهمي لمعرفة الآي بي المحلي
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("8.8.8.8", 80))
ip = s.getsockname()[0]
s.close()
# تحويل الآي بي مثل 192.168.1.5 إلى 192.168.1.1/24
return ".".join(ip.split('.')[:-1]) + ".1/24"
except Exception:
return "192.168.1.1/24"
def scan(ip):
"""إرسال طلبات ARP للكشف عن الأجهزة"""
print(f"🔎 جاري فحص الشبكة: {ip} ...\n")
def display_result(results_list):
"""عرض النتائج بشكل منظم"""
print("-----------------------------------------")
print("IP Address\t\tMAC Address")
print("-----------------------------------------")
for client in results_list:
print(f"{client['ip']}\t\t{client['mac']}")
print("-----------------------------------------")
print(f"✅ تم العثور على {len(results_list)} جهاز متصل.")
تشغيل الأداة
target_ip = get_gateway_ip()
scan_result = scan(target_ip)
display_result(scan_result)