apache の環境変数から MAC addressを取得することは可能なのでしょうか?

http://www.oreilly.co.jp/books/487311182X/toc.html
レシピ3.5 クライアントのMACアドレスをログに記録する
なるものがあります。

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

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/08/31 21:59:00
  • 終了:2006/09/01 17:31:54

回答(5件)

id:junono No.1

junono回答回数695ベストアンサー獲得回数282006/08/31 22:26:27

ポイント20pt

ちょっと古い情報ですが

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

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

id:b-wind No.2

b-wind回答回数3344ベストアンサー獲得回数4402006/08/31 23:19:28

ポイント20pt

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

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

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

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

id:isogaya

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

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

2006/08/31 23:41:07
id:YukiharuYabuki No.3

YukiharuYabuki回答回数50ベストアンサー獲得回数22006/09/01 00:00:02

ポイント20pt

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はダミーです。

id:b-wind No.4

b-wind回答回数3344ベストアンサー獲得回数4402006/09/01 00:08:28

ポイント20pt

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

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

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

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

id:kurukuru-neko No.5

kurukuru-neko回答回数1844ベストアンサー獲得回数1552006/09/01 16:17:07

ポイント20pt

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なら取れる)

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません