pslaboが試したことの記録

はてなダイヤリーからはてなブログに引っ越してきました

この日記は現在実行中の減量記録を含む個人的なメモとして始めましたが、最近はコンピュータやガジェット、ハック、セキュリティネタのほうがメインになっております。

はてなダイヤリー時代はカテゴリ分けが適当だったのですが、これはそのうち直します。


「MACアドレスからベンダーを検索して表示するコマンド」を作ってみる

MACアドレスからベンダーを検索して表示するコマンド」を探してみたのですけど案外見当たらない。こうなったらベンダーリストをIEEEのページからダウンロードして使うしか無いか、と思っていたら、こんなのを見つけました。
API | The simplest MAC Vendor Lookup API | MACVendors.com

をこでコレを使うスクリプトを書いてみることにします。なおAPIの利用回数等の制限事項は確認の上でご利用ください。

root@OpenWrt:~# cat macaddr2vendor.sh 
#!/bin/sh

while [ $# -gt 0 ]; do
	echo -n "$1="
	curl "http://api.macvendors.com/$1"
	echo ""
	shift
	sleep 1
done

root@OpenWrt:~# ./macaddr2vendor.sh d8:30:62:00:00:00  80:e6:50:00:00:00 58:b0:35:00:00:00 FC-A1-3E-2A-1C-33
d8:30:62:00:00:00=APPLE, INC.
80:e6:50:00:00:00=APPLE, INC.
58:b0:35:00:00:00=APPLE, INC.
FC-A1-3E-2A-1C-33=SAMSUNG ELECTRONICS

これで色々はかどります。

こういう検索は以下のようなコマンドで得られる結果に対して用いるケースが多いと思うので、わざわざウェブで検索するよりはコマンドラインでイケるほうが便利だと思うんですよね。

  • arp の実行結果
  • dhcpradius のログ
  • OpenWRT の logread の結果


さて、ここまで作っておいてアレですが、最終的には「MACアドレスをベンダー名に単純変換するフィルタ」を sed で書いたほうがよいのかもしれないと思っています。そうすればログ等をパイプ渡しするだけでベンダーコードをベンダー名に変換できます。そして、その sedスクリプトをベンダーコード一覧のファイルから自動で生成する処理を作っておけばなおよいわけですね。これを定期的に cron 経由で実行してフィルタをアップデートしたら、常に最新のフィルタが使える、というわけです。

よし、そのうち作ろう。

実際に作ってみたのがこちらです。
pslabo.hatenablog.com

しかし、sedのフィルタは巨大すぎてOpenWRTやLEDEで扱いづらかったので、別の方法でフィルタを実装してみました。
pslabo.hatenablog.com