Advertisement
SergeySamoylov

Simple network scanner

May 8th, 2025 (edited)
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.11 KB | Cybersecurity | 0 0
  1. #!/usr/bin/env bash
  2.  
  3. # Enhanced network scanner with proper port number handling
  4.  
  5. # Get network info
  6. interface=$(ip route | awk '/default/ {print $5}')
  7. ip_range=$(ip -o -f inet addr show | awk '/scope global/ {print $4}' | head -n1)
  8.  
  9. echo "Scanning network on interface $interface (range: $ip_range)"
  10. echo "----------------------------------------"
  11.  
  12. # Scan hosts
  13. nmap -sn $ip_range | awk '/Nmap scan/ {print $5, $6}' | while read -r ip host; do
  14.     echo "├── $ip ($host)"
  15.  
  16.     # Scan common ports with service detection (-sV)
  17.     # Using -F for fast scan (100 most common ports) and -T3 for normal timing
  18.     nmap -T3 -F -sV --min-rate=100 $ip | awk -v ip="$ip" '
  19.    /^[0-9]+\/tcp/ {
  20.        port = $1;
  21.        sub("/tcp", "", port);
  22.        service = $3;
  23.        for (i=4; i<=NF; i++) service = service " " $i;
  24.  
  25.        # Only show ports below 10000 or known services
  26.        if (port < 10000 || service != "unknown") {
  27.            printf("│   ├── %s/tcp (%s)\n", port, service);
  28.        }
  29.    }
  30.    ' | sort -n
  31.  
  32. done
  33.  
  34. echo "----------------------------------------"
  35. echo "Scan completed"
  36.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement