web-dev-qa-db-ja.com

WebページでMACアドレスを取得するにはどうすればよいですか?

ルーターにログオンして情報を入力しました。ボタンをクリックすると、コンピューターのMACアドレスがフィールドに自動的に入力されました。これはどのようにして可能ですか?セキュリティ上のリスクはありますか?

[〜#〜] vpn [〜#〜] を介して接続していますが、コンピューターは最新で実行中です Microsoft Security Essentials (MSE)。 MACアドレスを取得できるJavaScriptコードはありますか? MACアドレスはIPヘッダーで送信されますか?この情報を共有するように少なくとも促されなかったのには驚きました。

37
Celeritas

これはセキュリティ上のリスクではありません。

ルーターは [〜#〜] arp [〜#〜] テーブルを調べて、IPアドレスのMACアドレスを見つけます。これができるのは、 [〜#〜] osi [〜#〜] モデルのレイヤー2経由でルーターに接続しているためです。ルーターは、ARPキャッシュでIPアドレスを検索して、そのMACアドレスを見つけるだけです。 インターネット上のWebサイトはLANに接続されておらず、MACアドレスを特定できません。

同様に、コンピュータからARPキャッシュを調べて、ルーターのMACアドレスを特定します。コマンドプロンプト(Windowsではcmd.exe)を開いて「arp -a」と入力すると、ルーターのMACアドレスが表示されます。これはセキュリティリスクをもたらさず、IPトラフィックがイーサネットネットワークで機能するために必要です。

54

ここではリスクはありません。

インターネットは単なる1つのプロトコルではなく、相互に積み重なる一連のプロトコルです。スタックの各部分の正確な定義は人によって多少異なりますが、ここで懸念している2つはかなり明確に定義されています:リンクレイヤーネットワークレイヤー。あなたが尋ねる人に応じて、これらのレイヤーは異なる番号を持っているので、代わりに名前を使用します。

リンク層は、何らかの方法で直接接続されている2台のコンピューター間で信号を取得する方法を定義します。イーサネットは1つの例であり、ワイヤレスプロトコルの802.11ファミリも同様です。 MACアドレスを使用しているため、これらをリストします。モデムでよく使用されるPPPは、リンク層プロトコルのもう1つの例ですが、MACアドレスは使用しません。他のリンク層プロトコルもありますが、ここでは説明しません。

ネットワークレイヤーは、何らかの方法で直接接続されているコンピューターを使用して、直接接続されていない2つのコンピューター間で信号を取得する方法を定義します。これは、IPが存在する場所であり、MACアドレスを使用しません。*相互に直接接続されているマシン間でデータを渡す必要がありますが、これは、MACアドレスを使用するプロトコルのみを使用して行われる場合でも、MACを使用します現時点で情報をやり取りしている2つのマシンのアドレス。すべてを開始したMACアドレスではありません。 MACアドレスは、チェーンの最初のリンク(コンピューターとルーターの間のリンク)からしか見えません。これにより、コンピューターに接続されている他のコンピューターからのデータとは別に、コンピューターからのデータが識別されます。しかし、その後、あなたの住所はなくなっています。

あなたのルーターがあなたのMACアドレスを知っている理由は、あなたがリンク層を使ってあなたがそれに直接接続されているからです(それはまたネットワーク層であなたを見ることができます、それがあなたにそのインターフェースをあなたに提示する方法です、ただし、ここでは関係ありません)。このように直接接続されていない人のMACアドレスは、ネットワーク層で失われるため、見ることができません。**同じことが他のマシンにも当てはまります。つまり、ルーターはMACアドレスを認識できますが、他のユーザーは認識できません。

*:IPv4はMACアドレスを使用しません。使用しているIPバージョンがわからない場合は、おそらくIPv4です。 IPv6では、コンピューターが特定の方法でMACアドレスを使用できるようになっています(ただし必須ではありません)。一部の実装ではこれを行っていますが、多くの論争を引き起こしています。

**:繰り返しますが、これはMACアドレス情報をリークするIPバージョンを使用していないことを前提としています。

18
The Spooniest