shell脚本—————局域网IP扫描

#!/bin/bash
#该脚本用于采集某个C类网络存活主机的MAC地址
#使用方法:bash 脚本名字+网卡名字+网段前三位.10.144.100.
#ETH=$(ifconfig | grep eth | awk '{print $1}')

for ip in {1..254}
do
{
arping -c 2 -w 1 -I $1 $2$ip| grep "reply from" > /dev/null
#如果主机存活,会返回reply from的信息;

	if [ $? -eq 0 ]
	then
		MAC=`arp -n | grep "$2$ip" | awk '{print $3}'`
		echo " $2$ip 存活 "
		echo "$2$ip 存活,对应的mac地址为: $MAC" >> scanip.txt
	fi
}&
done
wait
echo "存活主机的IP地址和MAC地址已经保存在scanip.txt中"

arping
-A ARP回复模式,更新邻居
-b 保持广播
-D 复制地址检测模式
-f 得到第一个回复就 退出
-q 不显示警告信息
-U 主动的ARP模式,更新邻居
-c<数据包的数目> 发送的数据包的数目
-w<超时时间> 设置超时时间
-I<网卡> 使用指定的以太网设备,默认情况下使用eth0
-s 指定源IP地址
-h 显示帮助信息
-V 显示版本信息

arping -c 3 -f -D 10.98.4.100 -I ens34 检测ip是否占用
返回1占用 0未占用

你可能感兴趣的:(shell,Linux,tcp/ip,网络协议,网络)