- - PR -
PHPでMACアドレス取得
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-12-03 14:17
はじめまして。皆様のアドバイス頂きたく、投稿します。
PHPでMACアドレス取得したいのですが、可能でしょうか? または可能ならどうやったらいいのでしょうか? アドバイス頂けたらなと思います。 | ||||
|
投稿日時: 2004-12-07 16:47
こんにちは。
ウェブサーバを閲覧しているクライアントPCのMACアドレスを 取得したいということでしょうか? もしそうだとしたら無理だと思います。
| ||||
|
投稿日時: 2004-12-07 18:36
1. PHP 内で tcpdump を -e オプション付き且つ & 付きで起動し、パケットのスナップ
ショットをファイルに落とします。 2. 何分か sleep(); した後、同じPHP内で tcpdump のプロセスを殺します。 3. 同じ PHP 内でファイルを fopen(); し、fgets しながら fgetsした分全てを preg_match("xxx.xxx.xxx.xxx", buf); に掛けます。(xxx.xxx.xxx.xxx) は 探したい MAC アドレス(未確定)に対応する、確定したIP アドレス。 4. 検索結果の MAC アドレスを指す特定のフィールドを substr(); 等で返します。 5. ファイルの最後まで逝ったら、ファイルをクローズします。 | ||||
|
投稿日時: 2004-12-07 19:12
コブラさんのようにtcpdumpでみても、同じセグメント内の機器のMACしか得られないような気がします。
#デフォルトゲートウェイのMACだらけとか。 --編集-- 今、EtherealでLANのデフォルトゲートウェイのルータから外へ向かうパケットと外から入ってきたパケットのMACを見て、確かめたら、IPアドレスはどこであれ、全部デフォルトゲートウェイのMACでした。 _________________ おしえて〜。せんせ〜いさ〜ん。 [ メッセージ編集済み 編集者: ほろりん 編集日時 2004-12-07 21:08 ] | ||||
|
投稿日時: 2004-12-09 18:45
みなさんご返事ありがとうございました。
ぶしつけ気味な投稿に返事を頂けたことに感謝します。 今回の目的はニックさんの言う通りウェブサーバを閲覧しているクライアントPCのMACアドレスを取得する処理でした。 先輩とかにもお尋ねしたのですが、どうやら出来ないとのことでした。 コブラさんの言うとおりにやればよさそう・・・なんでしょうが、ほろりんさんの意見もあったりで・・・。なかなか難しいもんですねぇ。 | ||||
|
投稿日時: 2004-12-09 19:30
第2層(データリンク層)と第3層(ネットワーク層)の違いを考えれば当然の結論です。
MACは第2層ですから当然、隣同士の機器の間の制御にしか使用しません。 サーバから相手にパケットを送る時着信側のIP(ネットワーク層)を指定しますが、実際はデフォルトゲートウェイを経由します。第2層では第3層のIPのことなど当然知りませんので、サーバがデータリンク層(2層)で送る先のMACは当然デフォルトゲートウェイになります。 データリンク層でサーバが知っているべきMACはその同じセグメント内の機器のMACのみになります。 #説明の日本語がちょっとおかしいけどよく考えてみてください。 | ||||
|
投稿日時: 2004-12-13 14:52
なるほど。
なんとなくなんですが、イメージが湧きました。 つまり、サーバ側から相手にはMACなど知らなくても、相手のIPさえ知っておけば、デフォルトゲートウェイを通っていくだけで相手を見つけることができると・・・ だから逆にMACアドレスは取得できないと・・・いうことですよねぇ。恐らく・・・。 なんだか安易な質問でしたが、すごく勉強になりました。 ありがとうございました! | ||||
|
投稿日時: 2005-03-27 07:42
シティーバンクさんでは、
オンラインサービスで利用できるパソコンを限定していると聞いていますが、 どの様に実現していると考えられますでしょうか? MACアドレスで管理していると思い、このスレッドを見つけ質問させていただきます。 よろしくお願いたします。 |