IPアドレスは今まで,
System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName).AddressList(0)
で取得できていたが最近のPCはいろいろなIPアドレスが取れてしまうので
これではダメだ.
リストの中からIP4のアドレスを選択して取らなければいけない.
例:
Private Sub GetIPAddreess()
‘ホスト名を取得
Dim HostName As String = System.Net.Dns.GetHostName
‘IPアドレス等の情報を取得
Dim HostInfo As Net.IPHostEntry = System.Net.Dns.GetHostEntry(HostName)
‘複数取れるのでループして表示
For i As Integer = 0 To HostInfo.AddressList.Length – 1
Dim str1 As String = i.ToString + vbCrLf
‘IPアドレス
Dim Address As Net.IPAddress = HostInfo.AddressList(i)
‘AddressFamilyで区別
Select Case Address.AddressFamily
Case Net.Sockets.AddressFamily.InterNetwork
‘IP4 (環境によってIP4のアドレスが複数取れる場合があるので注意)
str1 += Address.ToString
MessageBox.Show(str1, “IPアドレス(IP4)”, MessageBoxButtons.OK)
Case Net.Sockets.AddressFamily.InterNetworkV6
‘IP6
str1 += “ScopeId = ” + Address.ScopeId.ToString
str1 += “, ” + Address.ToString
MessageBox.Show(str1, “IPアドレス(IP6)”, MessageBoxButtons.OK)
Case Else
‘その他
str1 += “AddressFamily = ” + Address.AddressFamily.ToString
str1 += “, ” + Address.ToString
MessageBox.Show(str1, “アドレス”, MessageBoxButtons.OK)
End Select
Next
End Sub

