190930
This commit is contained in:
54
Pilz.Networking/NetworkFeatures.vb
Normal file
54
Pilz.Networking/NetworkFeatures.vb
Normal 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
|
||||
Reference in New Issue
Block a user