2016-11-26 57 views
1

複数のテキストラベルまたは複数のテキストボックスをネットワークスタック情報で更新するボタンをクリックします。ここに私が後にしている論理があります。VB.NetでIPアドレス、サブネット、デフォルトゲートウェイ、DNS1、DNS2を取得

Button2 event 
Label1.text = Computer Name 
Label2.text = IP Address 
Label3.text = Subnet Mask 
Label4.text = Default Gateway 
Label5.text = DNS1 
Label6.text = DNS2 

私は、デフォルトゲートウェイやDNSのを取得するかどうかはわかりませんいくつかの作業コード

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 

    Dim strHostName As String 

    Dim strIPAddress As String 


    strHostName = System.Net.Dns.GetHostName() 

    strIPAddress = System.Net.Dns.GetHostByName(strHostName).AddressList(0).ToString() 



    TextBox2.Text = strIPAddress 
    Lable_IPAddress.Text = strIPAddress 


End Sub 

を持っています。サブネットマスクは、私がやろうとしていることにとって重要ではありませんが、ゲートウェイとDNSエントリは重要です。

ボタンを1つクリックして、うまくフォーマットされたネットワークスタックを表示したいだけです。これは難しいはずですが、私はvb.netにまだ慣れていないようです。

答えて

0

NetworkInterfaceクラスを使用する必要があります。それはあなたが望むすべての情報を含んでいます。あなたはここに詳細な情報を得ることができます。

https://msdn.microsoft.com/en-us/library/system.net.networkinformation.networkinterface(v=vs.110).aspx

簡単な利用法:

'Computer Name 
Label1.Text = System.Net.Dns.GetHostName() 
For Each ip In System.Net.Dns.GetHostEntry(Label1.Text).AddressList 
    If ip.AddressFamily = Net.Sockets.AddressFamily.InterNetwork Then 
     'IPv4 Adress 
     Label2.Text = ip.ToString() 

     For Each adapter As Net.NetworkInformation.NetworkInterface In Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces() 
      For Each unicastIPAddressInformation As Net.NetworkInformation.UnicastIPAddressInformation In adapter.GetIPProperties().UnicastAddresses 
       If unicastIPAddressInformation.Address.AddressFamily = Net.Sockets.AddressFamily.InterNetwork Then 
        If ip.Equals(unicastIPAddressInformation.Address) Then 
         'Subnet Mask 
         Label3.Text = unicastIPAddressInformation.IPv4Mask.ToString() 

         Dim adapterProperties As Net.NetworkInformation.IPInterfaceProperties = adapter.GetIPProperties() 
         For Each gateway As Net.NetworkInformation.GatewayIPAddressInformation In adapterProperties.GatewayAddresses 
          'Default Gateway 
          Label4.Text = gateway.Address.ToString() 
         Next 

         'DNS1 
         If adapterProperties.DnsAddresses.Count > 0 Then 
          Label5.Text = adapterProperties.DnsAddresses(0).ToString() 
         End If 

         'DNS2 
         If adapterProperties.DnsAddresses.Count > 1 Then 
          Label6.Text = adapterProperties.DnsAddresses(1).ToString() 
         End If 
        End If 
       End If 
      Next 
     Next 
    End If 
Next 
+0

これは完全に働きました。ありがとうございました。私はあらゆる種類のさまざまなことを試してきました。私が見つけたチュートリアルやその他のものは、まさに私が探していたものではなかったし、コンボボックスやもののようなものを使っていました。この情報を使用してください。ボタンをクリックしてネットワークスタックを表示させたいだけでした。あなたのコードはこの目的のために完璧に機能しました。 – user1837575

関連する問題