1

私のアプリケーションは Web サービスを使用します。私は、どのワークステーションが要求されたかを制御しており、このために、すべてのメソッドの MAC アドレスのパラメーターを送信します。しかし、実際にアプリケーションのテストを開始すると、多くのネットワーク アダプター (イーサネット、ワイヤレス、Bluetooth) を備えたワークステーションが見つかりました。次のコードを使用して MAC アドレスを取得すると:

var networkAdapters = NetworkInterface.GetAllNetworkInterfaces();
if (networkAdapters == null || networkAdapters.Length == 0)
    return string.Empty;

string address = string.Empty;

foreach (var adapter in networkAdapters)
{
    var a = adapter.GetPhysicalAddress();
    if (a != null && a.ToString() != string.Empty)
    {
        address = a.ToString();
        break;
    }
}
return address;

Web サービスはワークステーションから異なる MAC アドレスを受信することがありますが、私は常に 1 つの MAC アドレスのみを取得したいと考えています。私を助けてください。

4

2 に答える 2

0

アプリケーションがWebサービスに使用しているIPアドレスを知っていますか?正確に1つのアダプタがこのIPアドレスを持ちます。

YpouはGetIPProperties>を介してこれを確認できますUnicastAddresses

于 2011-03-01T08:10:48.323 に答える
0

2 つの異なるイーサネット カード (2 つの異なる MAC アドレス) がある場合、どちらの MAC アドレスが正しいアドレスでしょうか?

それを答えることが、この質問に答える根本です。正しい選択を選択するには、アルゴリズムを作成する必要があります。より識別力を高めるための多くのツールが手元にあります。

  1. GetIsNetworkAvailable==true- アクティブな接続を持つインターフェイスのみを識別します
  2. Speed- 最速の接続を調べることができます
  3. NetworkInterfaceType例: イーサネット

これらのルールが与えられたとしても、複数のアダプターが一致する場合があります。たとえば、複数の NIC が同じ LAN にバインドされているマシン。タイブレーカーのルールを決定できるのはあなただけです。

于 2011-03-01T07:51:20.677 に答える