千家信息网

Linux—Shell记录局域网中各个主机的MAC地址

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,shell-记录局域网中各个主机的MAC地址要求:编写一个名为getarp.sh的脚本,记录局域网中各个主机的MAC地址。保存到/etc/ether文件中,若此文件已存在,应先进行备份。每行一条记录,
千家信息网最后更新 2025年02月01日Linux—Shell记录局域网中各个主机的MAC地址

shell-记录局域网中各个主机的MAC地址

要求:

编写一个名为getarp.sh的脚本,记录局域网中各个主机的MAC地址。

保存到/etc/ether文件中,若此文件已存在,应先进行备份。

每行一条记录,第1列为IP地址,第3列为对应的MAC地址。

分析:

假定要扫描的网段是192.168.10.0,将192.168.10.赋值给变量NADD,作为检测地址的前缀;

使用arping -c 2 -w 1 向检测主机的IP发送ARP请求,记录MAC地址;


while循环语句检测目标主机并记录MAC地址,这里检测的主机地址范围为1~124;

1、vi创建一个名为getarp.sh脚本,内容如下:

截图如下:

内容如下:

#!/bin/bash

NADD="192.168.10."

FILE="/etc/ethers"

[ -f $FILE ] && /bin/cp -f $FILE $FILE.old

HADD=1

while [ $HADD -lt 124 ]

do

arping -c 2 -w 1 ${NADD}${HADD} &> /dev/null

if [ $? -eq 0 ]

then

arp -n | grep ${NADD}${HADD} | awk '{print $1,$3}' >> $FILE

fi

let HADD++

done

3、给脚本getarp.sh增加x权限

4、执行脚本,查看检测到的MAC信息

欢迎关注微信公众号:小温研习社

0