2009-05-20 27 views
1

C#winformアプリケーションをオンラインで構築したり、そこにいくつかの情報を収集しようとすると、複雑なものを構築しようとしています。 System.Net.NetworkInformationまたはSystem.Management.ManagementClass(私はいくつかの理由のために参照することはできません).Whereのいずれかを使用して、ネットワーク上のコンピュータのMACアドレスは、私の心配WebサーバーがクライアントのマシンのMACアドレスを取得する

  1. ている私のWebサーバがオンライン知ることができますそれに接続されているクライアントマシンのMACアドレス?
  2. 質問1が当てはまる場合は、クライアントのマシンがプロキシサーバーの背後に座っているのか、複数のWebプロキシを使用しているのか、IP(私が間違っている場合は正しい)を使用すると思いますか?
  3. 質問1と2が肯定的である場合ウェブサーバーからそれを行う方法。

答えて

5

いいえ、簡単な方法はありません。

MACアドレスは同じサブネット上でしか解決できません。これはかなり小さいイントラネットアプリケーションではないと仮定すると、クライアントと同じサブネットにはないでしょう。

理論的には、リモートWMIを使用してクライアントにクエリを実行することはできますが、ファイアウォールとアクセス許可の問題は軽微です。繰り返しますが、すべてのクライアントを制御できない限り、ここで成功する可能性は低いです。

唯一可能なことは、ダウンロード可能なアプリケーション(おそらくFlash、Silverlight、またはActiveX)で、ローカルマシンを尋問することです。その情報がブラウザによってサンドボックス化されるかどうかはわかりません。

あなたがやろうとしていることを簡単に行う方法はありますが、の詳細については、のMACアドレスが必要です。

+0

おかげで私は私が言っていたよう –

0

ウェブサーバーからその情報を取得することはできません。試してはいけません。マシンには複数のIPアドレスと複数のMACアドレスがあり、プロキシサーバーやネットワークアドレス変換デバイスの後ろにいる可能性があります。

IPアドレスはネットワークレイヤに属しているため、通常はアプリケーションレイヤで使用しないでください。他に何もない場合、ネットワーク管理者は、前提条件を無効にするネットワークを変更するときに開発者に相談することはほとんどありません。

0

他の回答が示唆しているように、IPアドレスを取得することで、必要な処理ができない場合があります。この情報を何のために使用しようとしていますか?

System.Management.ManagementObjectSearcherオブジェクトを使用して、この種の情報を照会することをおすすめします。私はこれが各接続されたネットワークアダプタのMACアドレスをつかむために使用できることを知っています。このロジックはクライアント側になければならず、必要な情報をサーバーに渡すことができます。

this Google Groups postのように表示されます。ここ は興味深いビットです:reply.iため

using System.Management; 

ObjectQuery query = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration"); 
ManagementObjectCollection queryCollection = query.Get(); 
foreach(ManagementObject mo in queryCollection) 
{ 
    foreach(string s in addresses) 
    { 
      Console.WriteLine("IP Address ‘{0}’", s); 
    } 
    foreach(string s in subnets) 
    { 
      Console.WriteLine("IP Subnet ‘{0}’", s); 
    } 
} 
+0

iがsystem.net.networkinformation名前空間を使用することを行うには、小さなWinフォームアプリケーションを構築する必要がありますと思います。 ソリューションエクスプローラからの参照をシステムに追加しました。(右クリックして参照を追加することができます)。しかし、System.Managementを使用するような名前空間を使用するといつでも私のreshaperインテリゼンスは下線を引いて解決できませんシンバル。どうしたらいいのか分かりません。私はこのシステムを使わない主な理由です。管理しています。これは私が真剣にバンクスに提案する学校プロジェクトです。電子商取引(セキュリティ)の特定の側面をカバーすることはあまりありません:) –

関連する問題