我有以下代码:
#!/bin/bash
FILES=known/*
arp-scan -l > temp_scan.log
cat temp_scan.log | while read line
do
for f in $FILES
do
echo "--------------------------------"
ADDR=$(cat $FILES)
MAC=$(echo $line | grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}')
sleep 0.1
#echo "$ADDR"
echo "$MAC"
if [[ "$ADDR" == "$MAC" ]]
then
echo "found"
else
echo "not fount"
fi
done
done
已知文件夹中有一个名为 Router 的文件,其中包含 MAC 地址。变量在某一点是相同的,但 if 语句显然不起作用。我花了 4 个小时试图了解问题所在,但我什么也没看到。
答案1
我发现问题了!!
看来,当 arp-scan 运行时,它会不时地显示不同的 MAC 地址。
例如,如果我现在扫描网络,它将显示我的路由器如下:
192.168.1.1 xx:xx:xx:xx:xx:xx (未知)
经过几次扫描后,路由器将显示如下内容:
192.168.1.1 xx:xx:xx:xX:xX:xx (未知)
有些字母是大写的。我想我搞乱了 Linux。所以我找到了问题的答案。我将把所有字母都转换为小写以进行比较。
对不起打扰!