不求甚解

此博客为个人学习之用,如与其他作品雷同,纯属巧合。

导航

任务 1:一键 ping 整个局域网(如 192.168.1.0/24)中的所有 IP 地址

方案 A:使用 ping(基础 Bash)

for i in {1..254}; do (ping -c1 -W1 192.168.1.$i >/dev/null && echo "192.168.1.$i is alive") & done; wait

方案 B:使用 fping(更快,需安装)

fping -a -g 192.168.1.0/24 2>/dev/null

方案 C:使用 nmap(推荐,结果清晰)

nmap -sn 192.168.1.0/24 -oG - | awk '/Up/{print $2 " is alive"}'

任务 2:一键检测局域网中所有 IP 的 8080 端口是否开放

方案 A:使用 Bash 内建 /dev/tcp

for i in {1..254}; do (ip=192.168.1.$i; timeout 1 bash -c "echo >/dev/tcp/$ip/8080" 2>/dev/null && echo "$ip:8080 open") & done; wait

方案 B:使用 netcat(nc)

for i in {1..254}; do (ip=192.168.1.$i; nc -z -w1 $ip 8080 && echo "$ip:8080 open") & done; wait

方案 C:使用 nmap(最可靠)

nmap -p 8080 --open -T4 192.168.1.0/24 -oG - | awk '/8080\/open/{print $2 ":8080 open"}'

方案 D:先 ping 通再扫 8080(减少无效探测)

for ip in $(nmap -sn 192.168.1.0/24 -oG - | awk '/Up/{print $2}'); do (nc -z -w1 $ip 8080 && echo "$ip:8080 open") & done; wait

安装依赖说明(如需)

  • 安装 nmap(Debian/Ubuntu):

    sudo apt install nmap
    
  • 安装 fping(Debian/Ubuntu):

    sudo apt install fping
    
  • 安装 netcat(通常已预装,若无):

    sudo apt install netcat-openbsd    # 或 netcat-traditional