This commit is contained in:
2019-09-30 16:18:53 +02:00
parent 7d884d7cba
commit 53f2a0666b
70 changed files with 2984 additions and 197 deletions

View File

@@ -0,0 +1,54 @@
Imports System.Net
Imports System.Net.NetworkInformation
Imports System.Net.Sockets
Public Module NetworkFeatures
Public Function GetIPFromHost(hostName As String) As IPAddress
Return Dns.GetHostAddresses(hostName).FirstOrDefault(Function(n) n.AddressFamily = AddressFamily.InterNetwork)
End Function
Public Function GetHostFromIP(ip As String)
Return Dns.GetHostEntry(ip)?.HostName
End Function
Public Function GetLocalIPInformations() As UnicastIPAddressInformation
Dim addr As UnicastIPAddressInformation = Nothing
For Each adapter As NetworkInterface In NetworkInterface.GetAllNetworkInterfaces
If addr Is Nothing AndAlso adapter.OperationalStatus = OperationalStatus.Up AndAlso adapter.NetworkInterfaceType <> NetworkInterfaceType.Tunnel AndAlso adapter.NetworkInterfaceType <> NetworkInterfaceType.Loopback Then
For Each uni As UnicastIPAddressInformation In adapter.GetIPProperties.UnicastAddresses
If addr Is Nothing AndAlso uni.Address.AddressFamily = AddressFamily.InterNetwork Then
addr = uni
End If
Next
End If
Next
Return addr
End Function
Public Function GetLocalIPAddress() As IPAddress
Return GetLocalIPInformations()?.Address
End Function
Public Function GetLocalIPv4Mask() As IPAddress
Return GetLocalIPInformations()?.IPv4Mask
End Function
Public Function GetLocalBoradcastIP(ipInfo As UnicastIPAddressInformation) As IPAddress
Dim ip As IPAddress = Nothing
Dim myIPBytes As Byte() = ipInfo.Address.GetAddressBytes
Dim subnetBytes As Byte() = ipInfo.IPv4Mask.GetAddressBytes
Dim broadcastBytes As Byte() = New Byte(myIPBytes.Length - 1) {}
For i As Integer = 0 To subnetBytes.Length - 1
broadcastBytes(i) = myIPBytes(i) Or Not subnetBytes(i)
Next
ip = New IPAddress(broadcastBytes)
Return ip
End Function
End Module