目录
自己用过的几种方法:
1、写一个bash脚本 通过ping命令,保留ping的通的IP
2、nmap工具
3、arp-scan工具
4、fping
5、ip neigh
1、bash脚本
写一个脚本,通过循环ping命令,将ping的通的保存下来。
ping的-c命令,等待超时,否则会永久等待。
例子:./ping.sh 192.168.4.*
#!/bin/bash
# 检查是否提供了网段参数
if [ -z "$1" ]; then
echo "用法: $0 <网段前缀,例如 192.168.4.*>"
exit 1
fi
# 获取网段前缀
network_prefix=$(echo "$1" | sed 's/\.\*//')
# 定义输出文件
output_file="reachable_ips.txt"
# 清空输出文件
> "$output_file"
# 遍历网段的所有 IP
for i in {1..254}; do
ip="$network_prefix.$i"
# Ping 每个 IP 地址,超时时间设为 1 秒,只发送一次请求
if ping -c 1 -W 1 "$ip" > /dev/null 2>&1; then
echo "$ip 可达"
# 记录可达的 IP 地址
echo "$ip" >> "$output_file"
fi
done
echo "Ping 完成。所有可达 IP 地址已记录在 $output_file 中。"
2、使用nmap工具
介绍:nmap可以扫描网络工具,可以快速发现网段内活动设备。
nmap工具需要下载安装 sudo apt install nmap
命令:
# 扫描网段内的所有活动 IP 地址
nmap -sn 192.168.4.0/24
-sn
参数表示只进行主机发现(不进行端口扫描)。192.168.4.0/24
表示扫描整个网段。
3、arp-scan工具
介绍:arp-sacn是基于arp协议局域网扫描工具,可以发现所有设备的ip和mac地址
命令:
# 扫描网段内所有设备
sudo arp-scan --interface=eth0 192.168.4.0/24
- 需要以
sudo
权限运行,并指定正确的网络接口 (eth0
是示例,需根据实际情况修改)。 - 扫描结果包含 IP 和 MAC 地址。
4、fping工具
介绍:fing是并行的ping工具,速度快,并发。
命令:
# 扫描指定网段内的所有 IP
fping -a -g 192.168.4.0/24 2>/dev/null
-a
选项只显示存活的主机。-g
选项用于生成指定网段范围的 IP 地址。
5、ip neigh
介绍:同样可以查看arp缓存中的局域网设备信息,通过vpn连接的网络好像不行
代码:
# 列出 ARP 表中的设备
ip neigh
说明:只列出与本机通信的网络,可以arp -a一下再用。不会主动扫描网段