Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Stato della connessione ad Internet

    Ragazzi ho un problema ho creato queste righe per verificare lo stato della mia connessione se attivo o meno.
    codice:
    Dim conn As Boolean = My.Computer.Network.IsAvailable
    If conn = True Then
       Label1.Text = "La connessione è attiva"
    Else
       Label1.Text = "La connessione è assente"
    End If
    Ma non mi funziona, quando avvio il programma, pur se disattivo la connessione o stacco il cavo mi da sempre "La connessione è attiva", ho provato altri metodi tipo racchiudere direttamente My.Computer.Network.IsAvailable negli If ma nulla..
    Ho trovato altri metodi che misurano i ping, ma lo sconsigliano, perché alcuni firewall li bloccano.
    Cosa posso fare?
    Ultima modifica di frankin0; 21-05-2015 a 13:41

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Secondo me la questione è un'altra. A prescindere dal codice, se dopo che il controllo è stato superato la connessione cade, che succede?

    Ti suggerisco di evitare questo tipo di controlli e di fare quello che devi con il tuo programma, prevedendo una robusta gestione degli errori durante lo scambio dei dati.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Quote Originariamente inviata da frankin0 Visualizza il messaggio
    ... quando avvio il programma, pur se disattivo la connessione o stacco il cavo mi da sempre "La connessione è attiva"...
    Proprietà My.Computer.Network.IsAvailable

    https://msdn.microsoft.com/it-it/lib...=vs.90%29.aspx

    Indica se un computer è connesso a una rete... ad una RETE, non ad Internet, e se hai un network device... hai una rete.

    Per verificare la connessione ad Internet... occorre "pingare" un server internet che accetti di essere pingato (si puo verificare tramite comando ping in cmd.exe)

    codice:
            Try            
                If My.Computer.Network.Ping("yahoo.it", 1000) Then
                    MsgBox("Server pingato, connessione internet attiva")
                Else
                    MsgBox("Ping time out.")
                End If
            Catch ex As Exception
                MsgBox("ERRORE: Connessione non disponibile.")
            End Try

    Ignoro se un firewall può a sua volta bloccare un ping.... ma altre vie non ne vedo, salvo, come già ti ha detto oregon, gestire gli errori di invio/ricezione dati.
    Ultima modifica di eziogsv; 21-05-2015 a 17:26

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Sì, i ping possono essere bloccati da un firewall (proprio per questo alcuni server non possono essere pingati, bloccano l'icmp).
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Si, ok, ma credo che stiamo parlando del server di destinazione del ping, non del firewall del router che invia la richiesta di ping.

    Cioè, voglio dire, dopo che TU, tramite il comando "ping" in cmd.exe, hai verificato che "yahoo.it" o "google.com" accettano di essere pingati... qualsiasi richiesta di ping su quei server da parte di un qualsiasi PC connesso ad internet dovrebbe essere esaudita positivamente... o no?
    Ultima modifica di eziogsv; 21-05-2015 a 17:46

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Quote Originariamente inviata da eziogsv Visualizza il messaggio
    Si, ok, ma
    Tutti i firewall possono bloccare l'ICMP ... Anche il tuo PC su Internet può essere pingato da un client ...

    Semmai il modo più semplice è contattare un web server "famoso" sulla porta 80. Anche se non si è sicuri al 100% in caso di fallimento.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Quote Originariamente inviata da eziogsv Visualizza il messaggio
    Proprietà My.Computer.Network.IsAvailable

    https://msdn.microsoft.com/it-it/lib...=vs.90%29.aspx

    Indica se un computer è connesso a una rete... ad una RETE, non ad Internet, e se hai un network device... hai una rete.

    Per verificare la connessione ad Internet... occorre "pingare" un server internet che accetti di essere pingato (si puo verificare tramite comando ping in cmd.exe)

    codice:
            Try            
                If My.Computer.Network.Ping("yahoo.it", 1000) Then
                    MsgBox("Server pingato, connessione internet attiva")
                Else
                    MsgBox("Ping time out.")
                End If
            Catch ex As Exception
                MsgBox("ERRORE: Connessione non disponibile.")
            End Try

    Ignoro se un firewall può a sua volta bloccare un ping.... ma altre vie non ne vedo, salvo, come già ti ha detto oregon, gestire gli errori di invio/ricezione dati.
    Vero.. avete perfettamente ragione, avevo una connessione di vritualBox attiva e se disattivavo solo la eternet, me la dava per connesso, ho disattivato la porta di virtualbox e questa volta me l'ha data offline, quindi non è per niente affidabile, fare con il Ping c'è la questione che qualche firewall blocchi il ping al 50%.

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ti ripeto il suggerimento della connessione a un sito web conosciuto su porta 80 ... ma non è comunque la soluzione ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.