我编写了用于监控默认网关的 MAC 地址的脚本,如果发现 ARP 攻击则发出警报。但是我在执行中遇到了一些错误。
我不能用正则表达式返回结果。这是针对 linux 脚本的
#!/bin/bash
function getmac {
dg = netstat -rn | grep -Eo 'default.*([0-9]{1,3}\.){3}[0-9]{1,3}' #grab the default gateway (DG)
dg_ip= $dg | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' #strip the DG to just IP
dg_arp = arp -a | grep -w $dg_ip #grab the arp entry for DG
dg_mac=$(echo $dg_arp | grep -Eo '[0-9a-f]{1,2}[:-][0-9a-f]{2}[:-][0-9a-f]{2}[:-][0-9a-f]{2}[:-][0-9a-f]{2}[:-][0-9a-f]{2}') #strip the ARP entry to just the MAC
echo "netstat shows "$dg
echo "DG IP shows "$dg_ip
echo "arp shows "$dg_arp
echo "DG MAC shows "$dg_mac
}
提前感谢,对不起我的英语。