Simple Network Scanner Script

import os
import platform
import socket
import sys

def get_local_ip():
    hostname = socket.gethostname()
    return socket.gethostbyname(hostname)

def ping_command(ip):
    system_platform = platform.system().lower()
    
    if system_platform == "windows":
        return f"ping -n 1 -w 1000 {ip} > NUL"  # Windows (suppress output)
    elif system_platform == "darwin":  # macOS
        return f"ping -c 1 -W 1 {ip} > /dev/null"  # Suppress output
    else:  # Assume Linux/Unix
        return f"ping -c 1 -W 1 {ip} > /dev/null"  # Suppress output

def scan_network(local_ip):
    base_ip = '.'.join(local_ip.split('.')[:-1]) + '.'
    active_hosts = []
    total_ips = 254  # Number of IPs to scan (1-254)

    print("Scanning the network...")

    for i in range(1, total_ips + 1):
        ip = base_ip + str(i)
        response = os.system(ping_command(ip))
        if response == 0:
            active_hosts.append(ip)

        # Update progress bar
        progress = (i / total_ips) * 100
        bar_length = 40
        block = int(bar_length * progress // 100)
        progress_bar = "#" * block + "-" * (bar_length - block)
        sys.stdout.write(f"\r[{progress_bar}] {progress:.2f}% done")
        sys.stdout.flush()

    print()  # Newline after progress bar
    return active_hosts

if __name__ == "__main__":
    local_ip = get_local_ip()
    print(f"Your local IP address: {local_ip}")
    active_devices = scan_network(local_ip)
    
    print("\nActive devices in the network:")
    for device in active_devices:
        print(device)