'Returns the UDP broadcast address.
'Returns an empty string if not available.
Sub GetBroadcastAddress As String()
Dim IPList As List
IPList.Initialize
Dim niIterator As JavaObject
niIterator = niIterator.InitializeStatic("java.net.NetworkInterface").RunMethod("getNetworkInterfaces", Null)
Do While niIterator.RunMethod("hasMoreElements", Null)
Dim ni As JavaObject = niIterator.RunMethod("nextElement", Null)
If ni.RunMethod("isLoopback", Null) = False Then
Dim addresses As List = ni.RunMethod("getInterfaceAddresses", Null)
For Each ia As JavaObject In addresses
Dim Broadcast As Object = ia.RunMethod("getBroadcast", Null)
If Broadcast <> Null Then
Dim b As String = Broadcast
IPList.Add(b.SubString(1))
End If
Next
End If
Loop
If IPList.Size > 0 Then 'Build an array from the list of broadcast IPs.
Dim ReturnIPArray(IPList.Size) As String
For I = 0 To IPList.Size-1
ReturnIPArray(I) = IPList.Get(I)
Next
Else
Dim ReturnIPArray() As String 'If we dont have any available networks, just return an empty array.
End If
Return ReturnIPArray
End Sub