制作 SQLite3 数据库
首先,去 IEEE 下载最新的 OUI 数据库。
wget http://standards-oui.ieee.org/oui/oui.txt
然后把数据库转换成 CSV 格式。
grep "(base 16)" oui.txt > oui_base16.txt
perl -p -i -e 's/\,/ /gm' oui_base16.txt
perl -p -i -e 's/\s+\(base 16\)\s+/,/' oui_base16.txt
打开 SQLite3,导入 CSV,并保存到数据库文件
$ sqlite3
sqlite> create table Lookup(MAC, VENDOR);
sqlite> .mode csv
sqlite> .import oui_base16.txt Lookup
sqlite> .save mac_vendor.sqlite3
sqlite> .quit
让 PHP 读取数据库
首先要确定 PHP 已安装 SQLite3 组件,PHP5 的安装方法是
sudo apt-get install php5-sqlite
sudo service apache2 restart
然后,在 PHP 代码里面加载数据库和查询函数
// Load vendor database
$mac_vendor_file = "mac_vendor.sqlite3";
$vendor_db = new SQLite3($mac_vendor_file);
function get_vendor($db, $mac) {
$mac_oui = substr(preg_replace("/\W/", "", $mac), 0, 6);
return $db->querySingle("SELECT VENDOR FROM Lookup WHERE MAC=\"${mac_oui}\"");
}
要查询制造商,只需要调用函数就可以了
$mac = "70:62:B8:94:11:49";
echo "Vendor of ${mac} is ", get_vendor($vendor_db, $mac);
// Vendor of 70:62:B8:94:11:49 is D-Link International