2012-01-02 5 views
1

ネットワーク接続がアクティブであるかどうかに関わらず、それを独立させる必要があります。 ダイヤルアップ接続のみを取得する必要があります。C#経由で使用されるデフォルトのネットワーク接続名を取得する方法は?

Claroはデフォルトのネットワーク接続名です。

enter image description here

はこれを行う方法は考えています。私はこれがはっきりしていることを望む前もって感謝します!

+0

に入れることができますか? Windowsでは、すべてのネットワークインターフェイスが同等に扱われていると私は確信しています。 –

+0

@ M.Babcock:私の更新情報をチェックしてください、画像を追加します – Jack

+0

ダイヤルアップのものでなければなりません。それにかかわらず、実際にネットワークインターフェイス上にデフォルトとして指定するプロパティがある場合、WMIまたは未処理のレジストリ設定からアクセスできる可能性があります。 –

答えて

2

インターネットに接続するために現在選択されている既定の接続(can be set in a couple of ways)を見つけるには、レジストリキーHKCU \ RemoteAccess InternetProfileを読み取る必要があります。これには、アダプタの名前が含まれます。

楽しい部分:DotRasを使用する必要があります。

あなたはこの、ダウンロード、インストール、およびプロジェクトで参照したら、次のようなコードを使用することができます

// Get the default adapter 
string defaultAdapter = Registry.GetValue(@"HKEY_CURRENT_USER\RemoteAccess", "InternetProfile", "") as string; 

foreach (RasConnection connection in RasConnection.GetActiveConnections()) 
{ 
    if (connection.EntryName.Equals(defaultAdapter, StringComparison.InvariantCultureIgnoreCase)) 
    { 
     if (connection.GetConnectionStatus().ConnectionState == RasConnectionState.Connected) 
     { 
      // Do something 
     } 
    } 
    // Done searching 
    break; 
} 
+0

ネットワーク接続がアクティブでないと問題はありません。 – Jack

+0

@Jack:あなたはすべてのアダプターを見渡すことができます。まだ起動していない場合は、他の状態の1つ以上を見てください。おそらく、NetworkInterfaceTypeがTunnelまたはLoopbackのアダプターを除外したい場合もあります。 –

+0

DotRsaライブラリを使用しようとしたら? – Jack

0

をあなたはどこを探して何本ですか?

using System.Net.NetworkInformation; 

    class Program 
    { 
     static void Main(string[] args) 
     { 
      foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces()) 
      { 

       Console.WriteLine(nic.NetworkInterfaceType); 
       Console.WriteLine(nic.Name); 
      } 
     } 
    } 

あなたはそれがモデムでNetworkInterfaceTypeのために置くどんな文字列を見つける場合の文ならば、あなたは「デフォルト」のネットワーク接続とはどういう意味ですかそこ

+0

ご返信ありがとうございます。それは前に答えられました、それはアクティブな接続のためだけに働く問題です。 – Jack