Ciao,
ho avuto anche io questa necessità in passato di controllare lo stato della mia connessione "Alice", per fare in modo di autoconnettermi nel caso di disconnessioni....
Io ho utilizzato l' API InternetGetConnectedState della libreria wininet.dll, che ti dà la possibilità di recuperare il tipo di connessione internet attiva.... non ho avuto modo di approfondire in situazioni dov'è presente un Router autoconnesso, ma magari può tornarti utile lo stesso.
Si dichiara l 'API
Codice:
Private Declare Function InternetGetConnectedState Lib "wininet.dll" (ByRef lpdwFlags As Int32, ByVal dwReserved As Int32) As Boolean
L' enumeratore per lpdwFlags:
Codice:
Private Enum Flags As Integer
'Local system uses a LAN to connect to the Internet.
INTERNET_CONNECTION_LAN = &H2
'Local system uses a modem to connect to the Internet.
INTERNET_CONNECTION_MODEM = &H1
'Local system uses a proxy server to connect to the Internet.
INTERNET_CONNECTION_PROXY = &H4
'Local system has RAS installed.
INTERNET_RAS_INSTALLED = &H10
End Enum
e poi in un evento inserisci:
Codice:
Dim lngFlags As Long
If InternetGetConnectedState(lngFlags, 0) Then
If lngFlags And Flags.INTERNET_CONNECTION_LAN Then
'LAN connection.
MessageBox.Show("LAN connection.")
ElseIf lngFlags And Flags.INTERNET_CONNECTION_MODEM Then
'Modem connection.
MessageBox.Show("Modem connection.")
ElseIf lngFlags And Flags.INTERNET_CONNECTION_PROXY Then
'Proxy connection.
MessageBox.Show("Proxy connection.")
End If
End If
Oppure puoi andarci per vie "traverse", facendo un ping a google il cui esito ti potrà indicare che la linea Internet è attiva oppure no... (ma quì entrano in gioco anche i DNS)
Codice:
If My.Computer.Network.Ping("www.google.it") Then
MessageBox.Show("CONNESSO")
End If