From 4bceb9af59ffaa13e069a86f48ec2907781ef8b6 Mon Sep 17 00:00:00 2001 From: juewuy Date: Thu, 5 Nov 2020 21:54:38 +0800 Subject: [PATCH] =?UTF-8?q?v1.0.0beta16.8=20~=E4=BC=98=E5=8C=96=E4=BA=86ma?= =?UTF-8?q?c=E5=9C=B0=E5=9D=80=E5=AF=BC=E5=85=A5=E5=92=8C=E5=88=A0?= =?UTF-8?q?=E9=99=A4=EF=BC=8C=E7=8E=B0=E5=9C=A8=E4=B8=8D=E5=AE=8C=E5=85=A8?= =?UTF-8?q?=E4=BE=9D=E8=B5=96dhcp=E6=9C=8D=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/clash.sh | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/scripts/clash.sh b/scripts/clash.sh index d8364a6..4971f7a 100644 --- a/scripts/clash.sh +++ b/scripts/clash.sh @@ -290,21 +290,30 @@ checkport(){ } macfilter(){ add_mac(){ + echo ----------------------------------------------- + echo 已添加的mac地址: + cat $clashdir/mac echo ----------------------------------------------- echo -e "\033[33m序号 设备IP 设备mac地址 设备名称\033[32m" cat $dhcpdir | awk '{print " "NR" "$3,$2,$4}' - echo -e "\033[0m 0-----------------------------------------------" + echo -e "\033[0m-----------------------------------------------" + echo -e "手动输入mac地址时仅支持\033[32mxx:xx:xx:xx:xx:xx\033[0m的形式" echo -e " 0 或回车 结束添加" - read -p "请输入需要添加的设备的对应序号 > " num - if [ -z "$num" ]||[ "$num" -le 0 ]; then + echo ----------------------------------------------- + read -p "请输入对应序号或直接输入mac地址 > " num + if [ -z "$num" -o "$num" = 0 ]; then macfilter - elif [ $num -le $(cat $dhcpdir | awk 'END{print NR}') ]; then + elif [ -n "$(echo $num | grep -E '^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$')" ];then + if [ -z "$(cat $clashdir/mac | grep -E "$num")" ];then + echo $num | grep -oE '^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$' >> $clashdir/mac + else + echo ----------------------------------------------- + echo -e "\033[31m已添加的设备,请勿重复添加!\033[0m" + fi + elif [ $num -le $(cat $dhcpdir | awk 'END{print NR}') 2>/dev/null ]; then macadd=$(cat $dhcpdir | awk '{print $2}' | sed -n "$num"p) if [ -z "$(cat $clashdir/mac | grep -E "$macadd")" ];then echo $macadd >> $clashdir/mac - echo ----------------------------------------------- - echo 已添加的mac地址: - cat $clashdir/mac else echo ----------------------------------------------- echo -e "\033[31m已添加的设备,请勿重复添加!\033[0m" @@ -324,7 +333,10 @@ macfilter(){ echo -e "\033[33m序号 设备IP 设备mac地址 设备名称\033[0m" i=1 for mac in $(cat $clashdir/mac); do - echo -e " $i \033[32m$(cat $dhcpdir | awk '{print $3,$2,$4}' | grep $mac)\033[0m" + dev_ip=$(cat $dhcpdir | grep $mac | awk '{print $3}') && [ -z "$dev_ip" ] && dev_ip='000.000.00.00' + dev_mac=$(cat $dhcpdir | grep $mac | awk '{print $2}') && [ -z "$dev_mac" ] && dev_mac=$mac + dev_name=$(cat $dhcpdir | grep $mac | awk '{print $4}') && [ -z "$dev_name" ] && dev_name='未知设备' + echo -e " $i \033[32m$dev_ip \033[36m$dev_mac \033[32m$dev_name\033[0m" i=$((i+1)) done echo ----------------------------------------------- @@ -356,7 +368,10 @@ macfilter(){ echo -e "当前已过滤设备为:\033[36m" echo -e "\033[33m 设备IP 设备mac地址 设备名称\033[0m" for mac in $(cat $clashdir/mac); do - cat $dhcpdir | awk '{print $3,$2,$4}' | grep $mac + dev_ip=$(cat $dhcpdir | grep $mac | awk '{print $3}') && [ -z "$dev_ip" ] && dev_ip='000.000.00.00' + dev_mac=$(cat $dhcpdir | grep $mac | awk '{print $2}') && [ -z "$dev_mac" ] && dev_mac=$mac + dev_name=$(cat $dhcpdir | grep $mac | awk '{print $4}') && [ -z "$dev_name" ] && dev_name='未知设备' + echo -e "\033[32m$dev_ip \033[36m$dev_mac \033[32m$dev_name\033[0m" done echo ----------------------------------------------- fi