Skip to content

lotfimedjati/Python-network-scanner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 

Repository files navigation

Python-network-scanner

import scapy.all as scapy import argparse from rich.console import Console from rich.table import Table

Initialisiere die Rich-Konsole für schönes Terminal-Design

console = Console()

def get_arguments(): """Verarbeitet die Kommandozeilenargumente.""" parser = argparse.ArgumentParser(description="Ein einfacher ARP-Netzwerk-Scanner.") parser.add_argument("-t", "--target", dest="target", help="Ziel-IP oder IP-Bereich (z.B. 192.168.1.1/24)", required=True) options = parser.parse_args() return options

def scan(ip): """Führt einen ARP-Scan im Netzwerk durch.""" with console.status(f"[bold green]Scanne Netzwerk: {ip}...", spinner="dots"): # Erstelle ARP-Request arp_request = scapy.ARP(pdst=ip) # Erstelle Ethernet-Broadcast-Frame broadcast = scapy.Ether(dst="ff:ff:ff:ff:ff:ff") # Kombiniere die Pakete arp_request_broadcast = broadcast/arp_request # Sende und empfange (timeout=2 Sekunden) 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_results(results_list): """Gibt die Ergebnisse in einer formatierten Tabelle aus.""" if not results_list: console.print("[bold red]Keine Geräte gefunden. Überprüfe deine Berechtigungen (sudo?).[/bold red]") return

table = Table(title="Gefundene Geräte im Netzwerk")

table.add_column("IP-Adresse", style="cyan", no_wrap=True)
table.add_column("MAC-Adresse", style="magenta")

for client in results_list:
    table.add_row(client["ip"], client["mac"])

console.print(table)

def main(): options = get_arguments() try: scan_result = scan(options.target) display_results(scan_result) except KeyboardInterrupt: console.print("\n[yellow]Programm vom User beendet.[/yellow]") except Exception as e: console.print(f"[bold red]Fehler:[/bold red] {e}")

if name == "main": main()

About

Ein Python Programm scannt dein Netzwerk und zeigt aktiv Geräte

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors