mirror of
https://github.com/caiwx86/small-packages.git
synced 2026-10-27 01:52:52 +08: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
|