Qual è un indirizzo IP esterno affidabile per eseguire il ping per verificare se Internet è disponibile? [chiuso]


53

Esiste un server sempre attivo comune, che posso impostare per eseguire il ping in modalità automatica per rilevare la disponibilità di Internet? Ti piace Google o qualcosa del genere? Potrebbe essere 8.8.8.8?

La mia situazione specifica è che sto usando un doppio router WAN. Ogni WAN è connessa a uno degli ISP. Quando il mio denaro sta finendo su uno degli ISP, non sta bloccando il canale. Invece, reindirizza a una pagina di avviso. Quindi, il router pensa che Internet sia attivo, poiché i dati viaggiano. Un'altra opzione per questo router è il ping per un indirizzo per verificare se Internet è attivo.

Mi chiedo, se eseguo il ping 8.8.8.8, non sarei vietato a Google per un utilizzo inappropriato? Sospetto che Google possa avere delle quote. Se eseguo il ping dei suoi server dei nomi troppo spesso, a volte riceverò scarti DNS.


1
Ti suggerirei di provare per quello che effettivamente vuoi. Quando dici "Internet è disponibile", cosa intendi?
David Schwartz,

1
@DavidSchwartz significa che Internet non è disponibile. Se si desidera un test specifico, molto sarà basato sulla WAN, quindi non è un'opzione per testare perché è oltre il muro ma l'ISP lo saprebbe.
barlop

5
ping stackexchange.com;)

6
@barlop È divertente, ma non utile. Che cosa significa "Internet non è disponibile"? Se non riesco a raggiungere il sito Web di Google, "Internet non è disponibile"? Se il DNS funziona ma nessuna pagina Web funziona, Internet è disponibile? Il primo passo per rispondere a una domanda è capire la domanda.
David Schwartz,

4
@DavidSchwartz Non stavo scherzando, e considerando che sta parlando di eseguire il ping di un IP correlato a Google come test e di non eseguire il ping di un dominio come www.google.com come test, ovviamente significa che in un caso in cui il DNS non è disponibile ma tutto il resto è disponibile, quindi considera Internet disponibile. non è disponibile. Se si desidera trovare un punto interrogativo, sarebbe se un router scadente fosse "non disponibile su Internet" ma ovviamente se si potesse fornire un test 4 in quello scenario vs WAN disponibile, o specifiche al suo interno, sarebbe più utile che dargli un test solo per un caso specifico o peggio, nessun caso.
barlop,

Risposte:


56

Prova a eseguire il ping 8.8.8.8, è il server DNS primario di Google. Lo ping sempre per verificare la mia connessione e non l'ho mai trovato. In alternativa puoi provare 8.8.4.4, che è il DNS secondario di Google.


3
pingaccetta anche i TLD. Quindi ping google.comdovrebbe fare il trucco, nel caso in cui non si desideri ricordare la quadrupla otto.
Johannes Pille,

38
@JohannesPille Il ping di un nome di dominio richiede un server DNS funzionante. Potrebbe quindi fallire se la richiesta DNS fallisse, il che non implica che la tua connessione Internet sia effettivamente inattiva.
Jonathan,

3
Se il tuo server dei nomi autorevole non funzionasse, la rete nella tua zona non sarebbe di grande utilità, vero?
Johannes Pille,

6
@JohannesPille potresti sovrascrivere il tuo DNS primario a 8.8.8.8 invece del valore predefinito di DCHP
maniaco del cricchetto

6
@JohannesPille pingnon accetta i TLD. Inoltre non accetta nomi di dominio. È solo per questo che la maggior parte dei nomi di dominio sono anche nomi host e si risolvono in un indirizzo IP. Quindi le persone potevano digitare http://example.cominvece di http://www.example.com, prima che i browser fossero così intelligenti da anteporre www.a un nome host se non funzionava in primo luogo. (Prova a ping army.milnon credermi.)
Dubu,

33

Puoi fare quello che fa Microsoft: controlla quello

http://www.msftncsi.com/ncsi.txt

restituisce "Microsoft NCSI". (Ciò verifica che sia possibile ottenere i dati corretti da un sito, ad esempio non un portale Wifi o qualcos'altro).

Puoi anche controllare (es. Ping) che dns.msftncsi.com

punta a 131.107.255.255 (ciò verifica che il DNS funzioni).

Vedi http://technet.microsoft.com/en-us/library/ee126135

NB: Puoi anche visitare http://www.msftconnecttest.com/redirect per accedere a un portale captive, se necessario.


1
+1. IIRC, Windows ha anche un'API per controllare il livello di connettività Internet usando questo metodo.
Navin,

7
Perché questo non è più votato? uno dei pochi modi davvero buoni, specialmente per la domanda specifica. Se il tuo ISP reindirizza il tuo traffico verso una pagina di avviso, controllare la risposta in questo modo è una delle poche opzioni affidabili!
Falco,

Non funziona più
user2924019

1
Cosa non funziona? Il sito restituisce ancora il testo giusto, il dns si risolve ancora nell'IP giusto, la documentazione restituisce ancora le informazioni giuste
Mark Sowul

Cordiali saluti non è possibile eseguire il ping 131.107.255.255- timeout. www.msftncsi.compassa a1961.g2.akamai.net, il che si risolve 23.59.182.83al momento della scrittura - non so se si tratta di un IP statico o meno. Mentre questa è una buona risposta alla domanda "qual è un buon URL per testare in modo affidabile la mia connessione a Internet" con ad esempio cURL o un browser, non è un IP che può essere verificato con un semplice pingcomando, quindi non è una risposta a questa domanda specifica.
iono,

13

Caso specifico

Si desidera eseguire il ping dell'IP fisso "più vicino" non instradabile quando l'ISP entra nello stato di sovraccarico del traffico. Sul mio sistema posso emulare questa situazione fallendo l'autenticazione ADSL. In tal caso, confrontando i risultati traceroute -nin condizioni normali e anormali, vedo che il primo hop a 8.8.8.8 (o qualsiasi sito sicuramente esterno) che non risponde è 151.6.68.45, che fa parte dell'infrastruttura del mio ISP.

Utilizzando che IP come host "check-in vita" (dopo aver ripetuto il test solo per essere sicuri che sia fisso), posso rilevare un ISP un'anomalia senza ottenere un falso positivo nel caso in cui l'ADSL è OK, ma l'instradamento ISP ha problemi .

Ovviamente, potrei usare 8.8.8.8 di proposito , ragionando che se non riesco a raggiungere l'infrastruttura di Google, non mi interessa il motivo , potrei anche provare con il router di backup.

Caso generale

"Internet è disponibile" è una cosa molto più complicata del semplice "È raggiungibile 8.8.8.8 (o altro IP)".

Per un controllo rapido, sporco e non sempre affidabile, il ping 8.8.8.8 è buono. Ma visto che usi un IP numerico invece di un nome di dominio, hai già compreso il fatto che potresti avere una connettività IP e ancora "nessuna Internet" a causa di problemi DNS.

Una diagnostica completa dovrebbe iniziare vicino al tuo PC.

  • interrogare la configurazione della rete locale e recuperare gateway e server DNS.
  • ping il gateway. Dovrebbe essere raggiungibile. In caso contrario, c'è un problema locale.
  • eseguire un traceroute con TTL breve (in realtà, un traceroute TCP come quello fornito da hping è migliore) di un indirizzo sicuramente esterno, 8.8.8.8 va bene.
  • vuoi vedere che, dopo il tuo gateway, alcuni nodi extra stanno rispondendo.

Ad esempio in Windows XP a casa ho:

 1    <1 ms    <1 ms    <1 ms  192.168.4.200   -- (constant) Home Linux box (gateway)
 2    <1 ms    <1 ms    <1 ms  192.168.0.1     -- (constant) ADSL modem
 3     *        *        *     *               -- WAN interface, always fails; expected
 4     *        6 ms     6 ms  151.6.64.30     -- (varies) ISP gateway

Ora prova a eseguire il ping del DNS. Dovrebbe essere raggiungibile. Ancora meglio, esegui un semplice controllo DNS. Al fine di evitare le cache DNS, a volte uso un dominio che risponderà a tutte le domande, qualunque cosa accada. Quindi per esempio

$ host randomasdfdsasdqwerty987667.godaddy.com
randomasdfdsasdqwerty987667.godaddy.com has address 97.74.104.201

mentre se il server DNS non è affidabile, la stessa query potrebbe restituire l'indirizzo del portale captive per il wifi

$ host randomasdfdsasdqwerty987667.godaddy.com
captiveportal.homenet has address 192.168.4.200

o 127.0.0.1 o persino un errore.

In caso di guasti DNS, posso provare un traceroute dell'indirizzo IP DNS (o un DNS diverso come quelli di OpenDNS). Ciò non solo mi dirà se il problema è il DNS o l'ISP, ma spesso mi permetterà di aggirare l'interruzione.

Se tutto va bene a questo punto, so che la connessione è funzionante, in generale; potrebbe ancora non riuscire per alcuni siti. Tutto ciò di cui ho bisogno ora è isup.mealzarmi :-), quindi controllare

http://www.isup.me/www.google.com
http://www.isup.me/mail.google.com

o un sito come Down Detector mi terrà informato sul "meteo su Internet".

In realtà, sul mio server di casa c'è una cache di Squid e la pagina di errore contiene gli ultimi dati recuperati con successo dalle statistiche del down-site, quindi potrei vedere qualcosa di simile

                Google.com is not reachable

                STORM ALERT: 12 out of 14 sites are unreachable!

proprio come è successo lo scorso venerdì qui in Italia.


Se riesci a eseguire il ping 8.8.8.8, passa al server DNS in modo che i problemi ISP DNS non contino
Zeb McCorkle,

2
Sì, ma dovresti farlo solo dopo aver verificato che i problemi sono, in effetti, basati su DNS. Esistono altri tipi di problemi che potrebbero lasciare intatto il routing a 8.8.8.8 (o il protocollo ICMP) mentre si distrugge qualcos'altro. Al contrario, la mancata esecuzione del ping 8.8.8.8 potrebbe non indicare affatto un problema di routing o DNS.
LSerni,

6

Come ha detto una coppia, è possibile eseguire il ping, ad esempio, il DNS primario di Google per ottenere una risposta ma non fare affidamento su un indirizzo. L'indirizzo (per una serie di motivi) potrebbe essere inattivo per un periodo di tempo, durante il quale il software segnalerà "nessuna connettività", quando, in effetti, la connettività di rete potrebbe non riscontrare alcun problema. Dovresti sempre tentare di comunicare con più di un indirizzo in modo da poter escludere falsi negativi.

Scriverei una funzione che esegue il ping di un indirizzo una volta, se ciò fallisce passare a un altro (fino a, diciamo, tre IP) e nel momento in cui ricevi un paio di risposte positive la funzione dovrebbe informare la tua applicazione / script che Internet è disponibile e Continua.


3

Quando lavoravo per un'organizzazione con una connessione Internet instabile, avevo uno script che testava diversi server "sempre attivi" per la connettività: prima il router / switch LAN, quindi il file server locale, quindi il router T1, quindi il DNS dell'ISP, quindi Google. Ho provato questi ultimi due come indirizzi numerici e come domini, per verificare i problemi DNS e il ping di per sé. Se uno dei ping fallisce troppo spesso, mi viene in mente dove è più probabile che si sia verificato il problema di connessione a Internet.

Per l'indirizzo numerico di Google, ne ho appena usato uno che avevo ottenuto da nslookup in precedenza: non mi sono mai imbattuto in un caso in cui era inattivo. Suppongo che 8.8.8.8 sarebbe più semplice.

Abbastanza spesso, quando la gente chiamava per dire che "Internet era inattivo", si scopriva che solo il DNS era inattivo; potremmo chiamare queste cose diverse, ma dal punto di vista dei miei colleghi, Internet non era disponibile in entrambi i casi.



2

Prova il tuo server DNS, ne avrai bisogno comunque (e la connessione esterna del tuo ISP potrebbe essere inattiva). Dipende davvero da cosa vuoi. Se è necessario accedere al servizio specifico, verificarlo.


Questo è valido solo se sai che il server DNS degli ISP sta rispondendo al ping. Potrebbe funzionare ma blocca ICMP.
Olli

Questa è la risposta più semplice e migliore, IMO.
njbair,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.