人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

apache の環境変数から MAC addressを取得することは可能なのでしょうか?
http://www.oreilly.co.jp/books/487311182X/toc.html
レシピ3.5 クライアントのMACアドレスをログに記録する
なるものがあります。

これをPHPから取得したいのですが、可能なのでしょうか?

●質問者: isogaya
●カテゴリ:コンピュータ インターネット
✍キーワード:Apache MAC MACアドレス クライアント レシピ
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● junono
●20ポイント

ちょっと古い情報ですが

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=1716...

を見ると不可能ぽいですよね。


2 ● b-wind
●20ポイント

http://httpd.apache.org/docs/2.0/mod/mod_log_config.html#log...

動作原理上ローカル同士の通信でもない限り、サーバー単体の機能では不可能です。

JavaScript や VBScript、ActiveX 等のクライアントサイドの技術と併用すれば可能となりますが、いずれにせよ Apache の担当範囲ではないはず。

該当の本でどのような記述がされているかについては分かりません。

◎質問者からの返答

パッチを当てる方法はあるみたいですね。

http://www.imc.cce.i.kyoto-u.ac.jp/~macky/apache/apache.html


3 ● YukiharuYabuki
●20ポイント

IPv6の環境なら可能性はあります。

パッチをちょっと眺めてみました。Linuxのパッチだと

/proc/net/arp

から情報を取っているようですね。

こんな感じ

user@hostname:~$ cat /proc/net/arp

IP address HW type Flags HW address Mask Device

192.168.1.1 0x1 0x2 XX:XX:XX:XX:XX:XX * eth1

HW addressの部分がmac addressです。XXの部分には16進数が入ってますが、webに載せるので、XXでマスクしています。

IPv4で通信しているなら、取得できるMacアドレスは、同一セグメント内だけですが、それがisogayaさんがしたいことですか?

IPv4の場合、ルータを超える通信(一般的なインターネット)へ通信する場合には、IPだけわかって、Mac addressはわかりません。

これがIPv6の世界になるとIPアドレスの中に埋め込まれているので、基本的にはIPが取得できればわかります。

現在のIPネットワーク情勢だとIPv6を使っている可能性は低いでしょうね。

http://www.google.co.jp/

URLはダミーです。


4 ● b-wind
●20ポイント

パッチ見てみましたが、単純にOSのARPを見ています。

ローカルネットワーク同士なら使えそうです。ただし、ルーターを一つでも介すと使えません。

ローカルネットワークでの使用ということでしたら質問の読み違えですね。すいません。

http://www.imc.cce.i.kyoto-u.ac.jp/~macky/apache/apache1.3_m...


5 ● kurukuru-neko
●20ポイント

MACアドレスはどのようにして取得可能かを

考えてみます。

1. フレームヘッダー

イーサーネットで通信する場合のフレームフォーマット

http://www.atmarkit.co.jp/fwin2k/network/tcpip007/tcpip03.ht...

2. IPヘッダー

通信相手のIPアドレス・ポートがわかります。

http://www.atmarkit.co.jp/fwin2k/network/baswinlan010/baswin...

http://www5e.biglobe.ne.jp/~komichan/network/n1_IPheader.htm...

http://www.ese.yamanashi.ac.jp/~itoyo/lecture/network/networ...

通信をローカルのネットワーク上で行う場合

1. の情報よりMACアドレスが取得できます。

しかし、インターネット環境(ルータ経由)をした場合

最低でも1つのルータを経由して外部のWEBサーバに

接続します。

PC->Router---->Router----> Web Server

この場合、1.で記録する宛先/送信元アドレス(MAC)

は、何れも直接通信する装置のものが記録されます。

LAN環境でMACを記録するならわざわざApacheを使わなくても

取得可能。 WAN(ルータ経由)では基本的に取得は

不可能,IP/V6では可能性があるが現在は普及していない

ので取得不可能。

>パッチを当てる方法はあるみたいですね。

事前にLAN環境での動作を確認してそれ以外で

できる方法がないと想像すると

#a2/a3/a4の方が既にできないといわれるように

IP/V4では不可能。

(サーバにつながっている直近のルーターのMACなら取れる)

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ