mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-15 18:03:30 +00:00
38 lines
1.2 KiB
Bash
Executable File
38 lines
1.2 KiB
Bash
Executable File
#!/bin/sh
|
||
# 脚本功能:json方式返回 网络物理设备
|
||
. /usr/share/libubox/jshn.sh
|
||
|
||
function get_netdevs()
|
||
{
|
||
# 过滤条件:无ip, bridge, wlan, lo 设备
|
||
for netdev in `ls /sys/class/net`;do
|
||
if [ -d "/sys/class/net/$netdev" ] && [ -n "$netdev" ];then
|
||
filter=0
|
||
unset DEVTYPE
|
||
. /sys/class/net/$netdev/uevent
|
||
cdir4=`ip addr show dev $netdev|grep "inet " | grep -E -o '([0-9]{1,3}\.){3}[0-9]{1,3}/[0-9]{1,2}' | sed ':a;N;$!ba;s/\n/;/g'`
|
||
|
||
[ -z "$cdir4" ] && filter=1
|
||
[ "$DEVTYPE" == "bridge" ] && filter=1
|
||
[ "$DEVTYPE" == "wlan" ] && filter=1
|
||
[ "$netdev" == "lo" ] && filter=1
|
||
if [ "$filter" -eq 0 ];then
|
||
macaddr=`cat /sys/class/net/$netdev/address`
|
||
#format $netdev (ip:cdir4 mac:address)
|
||
netdev_info="IP: $cdir4;"
|
||
[ -n "$macaddr" ] && netdev_info="$netdev_info MAC:$macaddr"
|
||
[ -n "$DEVTYPE" ] && netdev_info="$netdev_info TYPE:$DEVTYPE"
|
||
json_add_string $netdev "$netdev_info"
|
||
fi
|
||
fi
|
||
done
|
||
}
|
||
|
||
json_init
|
||
case $1 in
|
||
get_netdevs)
|
||
get_netdevs
|
||
;;
|
||
esac
|
||
json_dump
|