4 UCIFUNC
=/usr
/lib
/mac-to-devinfo
/devinfo-functions.sh
5 OVERRIDETABLE
=mactodevinfo
9 OUIURL
=http
://standards.ieee.org
/regauth
/oui
/oui.txt
10 IABURL
=http
://standards.ieee.org
/regauth
/oui
/iab.txt
12 OUIDIR
=/var
/cache
/mac-to-devinfo
14 OUIFILE
=$OUIDIR/oui.txt
15 IABFILE
=$OUIDIR/iab.txt
17 UCIDEVDB
=/usr
/share
/mac-to-devinfo
18 UCISTATE
="$(mktemp -t)"
24 if [ -z "$MAC" ]; then
25 echo "Must specify MAC address"
31 config_get name
"$cfg" name
32 config_get maclow
"$cfg" maclow
33 config_get machigh
"$cfg" machigh
34 config_get vendor
"$cfg" vendor
35 config_get devtype
"$cfg" devtype
36 config_get model
"$cfg" model
37 config_get ouiowneroverride
"$cfg" ouiowner
38 LOW
=$
(echo $maclow |
sed -e 's/://g')
39 HIGH
=$
(echo $machigh |
sed -e 's/://g')
40 if [ -z "$LOW" ] ||
[ -z "$HIGH" ] ||
[ -n "$(echo $LOW | grep -E -v '^[0-9A-Fa-f]{12}$')" ] ||
[ -n "$(echo $HIGH | grep -E -v '^[0-9A-Fa-f]{12}$')" ]; then
41 echo "Invalid mac range for $name: $ouiowneroverride $vendor $devtype $model : $LOW-$HIGH" >&2
45 LOWMSB
=$
(expr substr
"$LOW" 1 6)
46 LOWLSB
=$
(expr substr
"$LOW" 7 6)
47 HIGHMSB
=$
(expr substr
"$HIGH" 1 6)
48 HIGHLSB
=$
(expr substr
"$HIGH" 7 6)
50 if [ -z "$LOWMSB" ] ||
[ -z "$LOWLSB" ] ||
[ -z "$HIGHMSB" ] ||
[ -z "$HIGHLSB" ]; then
51 echo "Error splitting database address strings"
55 MACMSB
=$
(expr substr
"$MACNUM" 1 6)
56 MACLSB
=$
(expr substr
"$MACNUM" 7 6)
58 if [ -z "$MACMSB" ] ||
[ -z "$MACLSB" ]; then
59 echo "Error spliiting mac address string"
63 if [ -n "$ouiowneroverride" ]; then
64 OUIOWNER
="$ouiowneroverride"
66 if [ $
((0x
$MACMSB)) -ge $
((0x
$LOWMSB)) ] && [ $
((0x
$MACMSB)) -le $
((0x
$HIGHMSB)) ]; then
67 if [ $
((0x
$MACLSB)) -ge $
((0x
$LOWLSB)) ] && [ $
((0x
$MACLSB)) -le $
((0x
$HIGHLSB)) ]; then
68 if [ -n "$OUTSTRING" ]; then
69 echo "ERROR: We already have found information '$OUTSTRING'" >&2
70 echo -n "and now we have: " >&2
71 echo "$MAC | $OUIOWNER | $vendor | $devtype | $model" >&2
74 echo "$MAC | $OUIOWNER | $vendor | $devtype | $model"
82 if [ ! -r "$OUIFILE" ] ||
[ ! -r "$IABFILE" ]; then
83 echo "Missing IEEE Registration Authority Database. Please run prep-devinfo"
87 OUI
="$(echo $MAC | cut -f1-3 -d: | sed -e 's/:/-/g' | tr abcdef ABCDEF )"
89 OUIOWNER
="$(cat $OUIFILE | grep $OUI | tr -s '\t' | cut -f2- -d"$
(printf '\t')" )"
91 if [ -z "$OUIOWNER" ] ||
[ "$OUIOWNER" = "IEEE REGISTRATION AUTHORITY" ]; then
92 if [ -n "$(cat $IABFILE | grep $OUI)" ]; then
93 LOWRANGE
="$(echo $MAC | cut -f4-6 -d: | sed -e 's/://g' | tr abcdef ABCDEF )"
94 for range
in $
(cat $IABFILE |
grep -E '[0-9A-F]{6}\-[0-9A-F]{6}' |cut
-f1 -d"$(printf '\t')" ); do
95 LOW
="$(echo $range | cut -f1 -d- )"
96 HIGH
="$(echo $range | cut -f2 -d- )"
97 if [ -z "$LOW" ] ||
[ -z "$HIGH" ]; then
98 echo "Error parsing IAB table"
102 LOWMSB
=$
(expr substr
"$LOW" 1 6)
103 LOWLSB
=$
(expr substr
"$LOW" 7 6)
104 HIGHMSB
=$
(expr substr
"$HIGH" 1 6)
105 HIGHLSB
=$
(expr substr
"$HIGH" 7 6)
107 if [ -z "$LOWMSB" ] ||
[ -z "$LOWLSB" ] ||
[ -z "$HIGHMSB" ] ||
[ -z "$HIGHLSB" ]; then
108 echo "Error splitting registration authority IAB address strings"
112 MACMSB
=$
(expr substr
"$LOWRANGE" 1 6)
113 MACLSB
=$
(expr substr
"$LOWRANGE" 7 6)
115 if [ -z "$MACMSB" ] ||
[ -z "$MACLSB" ]; then
116 echo "Error splitting mac address string"
119 if [ $
((0x
$MACMSB)) -ge $
((0x
$LOWMSB)) ] && [ $
((0x
$MACMSB)) -le $
((0x
$HIGHMSB)) ]; then
120 if [ $
((0x
$MACLSB)) -ge $
((0x
$LOWLSB)) ] && [ $
((0x
$MACLSB)) -le $
((0x
$HIGHLSB)) ]; then
121 OUIOWNER
="$(cat $IABFILE | grep "$LOW-$HIGH" | tr -s '\t' | cut -f3- -d"$
(printf '\t')" )"
129 if [ -z "$OUIOWNER" ]; then
130 OUIOWNER
="Unknown Organization"
133 MACNUM
="$(echo $MAC |sed -e 's/://g' | tr ABCDEF abcdef )"
135 UCI
="$UCIBIN -c $UCIDEVDB"
137 DEVSTRING
=$
(config_foreach parse_override mactodevinfo
)
139 SAVEDEVSTRING
="$DEVSTRING"
141 UCI
="$UCIBIN -c $UCICONFIG"
142 config_load
$OVERRIDETABLE
143 DEVSTRING
=$
(config_foreach parse_override mactodevinfo
)
145 if [ -z "$DEVSTRING" ]; then
146 if [ -z "$SAVEDEVSTRING" ]; then
147 echo "$MAC | $OUIOWNER | unknown | unknown | unknown"
149 echo "$SAVEDEVSTRING"