やるなと書いてあるのですが... arp-scan の ieee-oui.txt を書き換える!

raspbian に導入した arp-scan の mac-vendor 対応情報が古いようで、使っているスマホのベンダーが判明できないようです。 /usr/share/arp-scan/ieee-oui.txt を見ると、2011-03-01だとの事。随分と過去の状態ですね。このファイルを見ると、次のように書かれています。

書き換えるなら、mac-vendor.txt にしろと書いてあります。

補足:oui は Organizationally Unique Identifier の略で、MACアドレスの前半部分を差し、製品ベンダーのコードです。後半部分は製品ベンダーが管理してユニークになるように割り当てる事が期待されています。大手の製品ベンダーは幾つもの oui を持っています。

では、と、同じディレクトリにある、mac-vendor.txt を見ると

とあります。
mac-vendor.txt には ieee-oui.txt に含まれているものは載せるなというように取れます。いちいち、載っているか否か調べてから mac-vendor.txt に記載するのは面倒ですね。それに、mac-vendor.txt は何となく恣意的に記述されてる気がして変更を加えるのは嫌な気がしました。
ieee-oui.txt が更新できれば一番良いのですが、このファイルの更新方法がよく分かりません。arp-scan を apt-get 経由以外でインストールするのは、避けたいと思ったので、ieee-oui.txt の元となっている、oui.txt を元にして ieee-oui.txt を生成しなおせばいいのでは、と思い試してみました。

そうです、私は「See get-oui(1)」を見落としていたのです!(この情報は、ieee-oui.txt に載せて欲しい! いや、一応載っています。「by get-oui」をすっかり読み飛ばしていました…)更新するコマンドが提供されていたのですね。今は get-oui コマンドで生成したファイルを適用して運用していますが、せっかくやったので、バカな記録として以下を残しておきます。awk 勉強できたし、良かった!??

まずは、適当な作業ディレクトリを作りそこに移動してから、次のコマンドで oui.txt を入手します。サイズが大きいので時間がかかります。

次に ieee-oui.txt と同じ形式に加工します。(スキルが低く効率は悪いのでしょうが、頻繁には実行しないので…)

簡単に説明します。
oui.txt 内で、MAC アドレスで始まっていない行は製品ベンダーの住所っぽいので、処理対象にしません。MAC アドレスで始まっている行は2種類あって、2バイト毎にハイフンで区切られているものとそうでないもの、です。後者の方のみを sed で抜き出します。
そして、awk を使って 最初のMAC アドレスの部分を念の為に大文字化してタブ区切りで出力、”(base 16)”の部分を読み飛ばして以降をスペース区切りで出力します。大文字化は不要なのですが、念の為に…
ソートしたうえで、念の為に MAC アドレスの部分でユニーク化しています。

製品ベンダーの情報の部分、空白が全て1文字分になっていまいますが、人間が認識する部分のハズなので、問題ないかと。awk で for と if を使うってのは、あまりやりたくないとは思ったのですが、スクリプト・ファイルを書くのもアレだなと思ったので…

そして、念の為に、arp-scan 提供の ieee-oui.txt(ヘッダー部分以外はソート済の模様) とマージします。

arp-scan 提供の ieee-oui.txt のバックアップを取得してから、置き換えます。

arp-scan を実行してみて、エラーがでなければ OK 、で良いのかな?

なお、製品ベンダーの情報の部分の表記の揺れは、一切補正していません。情報元で表記の揺れを直して欲しいですね。

“やるなと書いてあるのですが... arp-scan の ieee-oui.txt を書き換える!” への2件のフィードバック

  1. Kei Ohnuma より:

    この記事に助けられました。
    このWPはRpi3で動作してるんですか?
    長年arp-scanを使用してましてv1.9の提供元がDLリンクを削除または移転して以来mac vendorがunknownとなって困っておりました。もしよろしければこちらの手法、当ブログに載せても構わないでしょうか?

    • 管理人 より:

      しばらくチェックしていなかったので、遅くなりました。申し訳ございません。
      載せて頂いても全然構いません。誹謗中傷でなければ、ですが。

      このwpはrpi3では運用していません。ロリポップさんです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA