2017-07-20 26 views
0

私はChecking static or dynamic IP address in C# .NET?vb.netで静的または動的IPアドレスを検出する方法は?

Imports System.Net.NetworkInformation 

Private niAdpaters As NetworkInterface() = NetworkInterface.GetAllNetworkInterfaces() 

Private Function GetDhcp(iSelectedAdpater As Int32) As [Boolean] 
    If niAdpaters(iSelectedAdpater).GetIPProperties().GetIPv4Properties() IsNot Nothing Then 
     Return niAdpaters(iSelectedAdpater).GetIPProperties().GetIPv4Properties().IsDhcpEnabled 
    Else 
     Return False 
    End If 
End Function 

から、次のコードを持っているしかし、私は上記のコードの使用方法を理解しません。

+1

両方の場合はどうなりますか?同じ構成ではない複数のネットワーク接続を持つことができます。たとえば、静的に割り当てられたネットワークポートと動的アドレスを取得する無線LANカードがあるとします。私のラップトップは実際には今のところセットアップされています。なぜなら、私のサーバとスイッチ機器のいくつかを管理するためにLANポートに静的アドレスが必要だからです。あなたはそのような状況にどのように対処したいですか? –

+0

それは異なります。複数のケーブル接続が可能です。たとえば、4つのネットワークポートを持つサーバーがあります。メインインターフェイスは静的IPですが、他のインターフェイスでは異なるVLANに設定され、動的アドレスが使用されます。 –

+1

C#コードが実行されているコンピュータのネットワークインターフェイスのIPは、ISPが提供するIPとは異なります。あなたのモデム/ルータがあなたの家を完全に別個のプライベートネットワークに分割することによって提供されるNAT層があります。あなたが目にしていることは、あなたが知りたいことを全く教えてくれないことを意味します。そのネットワークの中では、たとえあなたのISPが静的アドレスを正しく提供していても、C#コードで何をしていても、おそらく "ダイナミック"と表示されます。 –

答えて

0

あなたはこのようにそれを呼び出すために旧姓ので、その引数として選択したアダプタを期待GetDhcpあなたの方法:

If GetDhcp(1) = True Then 
    ... 

または単に

1は、アダプタのインデックスを表し
If GetDhcp(1) Then 
    ... 

すべてのNetworkInterfacesのリスト

ジョエルが指摘したとおりにチェックするために、リストを調べて、必要なNetworkInterfaceを見つける必要があります。

あなたのシステムには、無線LAN、LAN、さらには仮想アダプタ(ホストOS上で動作する仮想マシン)など、任意の数のアダプタを使用できます。

+0

[NetworkInterface.GetAllNetworkInterfaces](https://msdn.microsoft.com/en-us/library/system.net.networkinformation.networkinterface.getallnetworkinterfaces(v = vs.110).aspx)と[NetworkInterface Properties](https ://msdn.microsoft.com/en-us/library/system.net.networkinformation.networkinterface_properties(v = vs.110).aspx) - これはお使いのISPではなく、お使いのOSの設定に関連しています。ダイレクトWAN接続を備えたマシン上のコード。 – Filburt

関連する問題