aa2a3bfd48
(Organizationally Unique Identifiers). This is the manufacturer's code in the MAC address.
53 lines
1020 B
Bash
Executable File
53 lines
1020 B
Bash
Executable File
#! /bin/sh
|
|
# Utility to create manufacturer's oui table
|
|
# OUI is "Organizationally Unique Identifier" assigned by IEEE.
|
|
# There are currently three duplicate listings, so we can not enforce
|
|
# uniqueness in the OUI field.
|
|
# - thomas 2000-08-21
|
|
|
|
args=
|
|
update=0
|
|
|
|
while [ $# -gt 0 ]
|
|
do
|
|
case "$1" in
|
|
--update)
|
|
update=1
|
|
;;
|
|
--noupdate)
|
|
update=0
|
|
;;
|
|
--help)
|
|
echo "Usage: $0 --[no]update dbname"
|
|
exit
|
|
;;
|
|
*)
|
|
args="$args $1"
|
|
;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
psql -e $args <<EOF
|
|
-- Table containing OUI portions of MAC address and manufacturer's name
|
|
create table macoui (
|
|
addr macaddr not null,
|
|
name text not null
|
|
);
|
|
|
|
-- Create an index to help lookups
|
|
create index macoui_idx on macoui (addr);
|
|
|
|
-- Function to return manufacturer's name given MAC address
|
|
create function manuf (macaddr)
|
|
returns text as '
|
|
select name from macoui m where trunc(\$1) = m.addr;
|
|
' language 'SQL';
|
|
EOF
|
|
|
|
if [ $update -gt 0 ]; then
|
|
updateoui $args
|
|
fi
|
|
|
|
exit
|