v1.0.0beta16.8
~优化了mac地址导入和删除,现在不完全依赖dhcp服务
This commit is contained in:
@@ -290,21 +290,30 @@ checkport(){
|
|||||||
}
|
}
|
||||||
macfilter(){
|
macfilter(){
|
||||||
add_mac(){
|
add_mac(){
|
||||||
|
echo -----------------------------------------------
|
||||||
|
echo 已添加的mac地址:
|
||||||
|
cat $clashdir/mac
|
||||||
echo -----------------------------------------------
|
echo -----------------------------------------------
|
||||||
echo -e "\033[33m序号 设备IP 设备mac地址 设备名称\033[32m"
|
echo -e "\033[33m序号 设备IP 设备mac地址 设备名称\033[32m"
|
||||||
cat $dhcpdir | awk '{print " "NR" "$3,$2,$4}'
|
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 或回车 结束添加"
|
echo -e " 0 或回车 结束添加"
|
||||||
read -p "请输入需要添加的设备的对应序号 > " num
|
echo -----------------------------------------------
|
||||||
if [ -z "$num" ]||[ "$num" -le 0 ]; then
|
read -p "请输入对应序号或直接输入mac地址 > " num
|
||||||
|
if [ -z "$num" -o "$num" = 0 ]; then
|
||||||
macfilter
|
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)
|
macadd=$(cat $dhcpdir | awk '{print $2}' | sed -n "$num"p)
|
||||||
if [ -z "$(cat $clashdir/mac | grep -E "$macadd")" ];then
|
if [ -z "$(cat $clashdir/mac | grep -E "$macadd")" ];then
|
||||||
echo $macadd >> $clashdir/mac
|
echo $macadd >> $clashdir/mac
|
||||||
echo -----------------------------------------------
|
|
||||||
echo 已添加的mac地址:
|
|
||||||
cat $clashdir/mac
|
|
||||||
else
|
else
|
||||||
echo -----------------------------------------------
|
echo -----------------------------------------------
|
||||||
echo -e "\033[31m已添加的设备,请勿重复添加!\033[0m"
|
echo -e "\033[31m已添加的设备,请勿重复添加!\033[0m"
|
||||||
@@ -324,7 +333,10 @@ macfilter(){
|
|||||||
echo -e "\033[33m序号 设备IP 设备mac地址 设备名称\033[0m"
|
echo -e "\033[33m序号 设备IP 设备mac地址 设备名称\033[0m"
|
||||||
i=1
|
i=1
|
||||||
for mac in $(cat $clashdir/mac); do
|
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))
|
i=$((i+1))
|
||||||
done
|
done
|
||||||
echo -----------------------------------------------
|
echo -----------------------------------------------
|
||||||
@@ -356,7 +368,10 @@ macfilter(){
|
|||||||
echo -e "当前已过滤设备为:\033[36m"
|
echo -e "当前已过滤设备为:\033[36m"
|
||||||
echo -e "\033[33m 设备IP 设备mac地址 设备名称\033[0m"
|
echo -e "\033[33m 设备IP 设备mac地址 设备名称\033[0m"
|
||||||
for mac in $(cat $clashdir/mac); do
|
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
|
done
|
||||||
echo -----------------------------------------------
|
echo -----------------------------------------------
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user