views:

156

answers:

2

How can I return the IPv4 address in VB.Net?

eg. 192.168.1.5

A: 
Dim myClientMachineAddressList As IPHostEntry = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName())
Dim myClientMachineIP As String = myClientMachineAddressList.AddressList(0).ToString()

edit:

then you can use IPAddress.AddressFamily to find out IP familly type.

Cicik
Will return IPv6 if it's there (I think)
PostMan
@PostMan - thanks for comment I fixed post.
Cicik
+1  A: 

Something like this

Public Function GetIpV4() As String

  Dim myHost As String = Dns.GetHostName
  Dim ipEntry As IPHostEntry = Dns.GetHostEntry(myHost)
  Dim ip As String = ""

  For Each tmpIpAddress As IPAddress In ipEntry.AddressList
     If tmpIpAddress.AddressFamily = Sockets.AddressFamily.InterNetwork Then
        Dim ipAddress As String = tmpIpAddress.ToString
        ip = ipAddress
        exit for
     End If
  Next

  If ip = "" Then
     Throw New Exception("No 10. IP found!")
  End If

  Return ip

End Function
Codezy
+1 nice written :)
Cicik