web-dev-qa-db-fra.com

Quelle est une adresse IP fiable externe à utiliser pour vérifier si Internet est disponible?

Existe-t-il un serveur commun toujours actif, que je peux configurer pour effectuer un ping en mode automatique afin de détecter la présence d'Internet? Vous aimez Google ou quelque chose? Peut-être 8.8.8.8?

Ma situation spécifique est que j'utilise un double routeur WAN. Chaque WAN est connecté à l'un des FAI. Lorsque mon argent se termine sur l'un des FAI, il ne bloque pas le canal. Au lieu de cela, il redirige vers une page d'avertissement. Le routeur pense donc qu'Internet est activé, car les données voyagent. Une autre option pour ce routeur est de faire un ping pour une adresse pour vérifier si Internet est allumé.

Je me demande si je lance un ping sur 8.8.8.8. Google ne me bannira-t-il pas pour une utilisation inappropriée? Je soupçonne que Google pourrait avoir des quotas. Si je fais un ping trop souvent sur ses serveurs de noms, je vais parfois avoir des refus de DNS.

50
Dims

Essayez d’envoyer une requête ping à 8.8.8.8, c’est le serveur DNS principal de Google. Je fais toujours un ping pour vérifier ma connexion et je ne l'ai jamais trouvée. Sinon, vous pouvez essayer 8.8.4.4, qui est le DNS secondaire de Google.

56
AlexC

Vous pouvez faire ce que Microsoft fait: vérifier que

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

renvoie "Microsoft NCSI"

Vous pouvez également vérifier que dns.msftncsi.com

points sur 131.107.255.255

Voir http://technet.Microsoft.com/en-us/library/ee126135

27
Mark Sowul

Cas particulier

Vous souhaitez envoyer une requête ping à l'adresse IP fixe "la plus proche" qui ne peut pas être routée lorsque le fournisseur de services Internet entre en état de surcharge du trafic. Sur mon système, je peux émuler cette situation en échouant à l'authentification ADSL. Dans ce cas, en comparant les résultats de traceroute -n dans des conditions normales et anormales, je constate que le premier saut effectué vers 8.8.8.8 (ou tout autre site sûrement externe) qui ne répond pas est 151.6.68.45, qui fait partie de l'infrastructure de mon FAI.

En utilisant thatIP en tant qu'hôte "check-alive" (après avoir répété le test juste pour être sûr qu'il isest corrigé), je peux détecter une anomalie ISP sans obtenir de faux positif si l'ADSL est OK, mais le routage ISP a des problèmes.

Bien sûr, je pourrais utiliser 8.8.8.8 exprès, si je ne parviens pas à accéder à l'infrastructure de Google, je me fiche de la raison, je pourrais aussi bien essayer avec le routeur de sauvegarde.

Cas général

"Internet is available" est une chose beaucoupplus compliquée que simplement "est 8.8.8.8 (ou autre IP) accessible".

Pour une vérification rapide, sale et pas toujours fiable, il est conseillé d’envoyer une requête en 8.8.8.8. Mais vu que vous utilisez une adresse IP numérique au lieu d’un nom de domaine, vous vous êtes déjà rendu compte que vous pouviez avoir une connectivité IP et toujours "pas d’Internet"à cause de problèmes de DNS).

Un diagnostic complet devrait commencer près de votre PC.

  • interroger la configuration du réseau local et récupérer la passerelle et le serveur DNS.
  • cingler la passerelle. Il devrait être accessible. Sinon, il y a un problème local.
  • lancez un traceroute avec TTL court (en fait, un TCP traceroute tel que celui fourni par hping est meilleur) d'une adresse sûrement externe, 8.8.8.8 convient.
  • vous voulez voir qu'après la passerelle, certains nœuds supplémentaires répondent.

Par exemple, sous Windows XP à la maison, j'ai:

 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

Maintenant, essayez de faire un ping DNS. Il devrait être accessible. Mieux encore, lancez une simple vérification DNS. Afin d'éviter les caches DNS, j'utilise parfois un domaine qui répondra aux requêtes all quoi qu'il arrive. Donc par exemple

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

tandis que si le serveur DNS n'est pas fiable, la même requête peut renvoyer l'adresse du portail captif pour le wifi

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

ou 127.0.0.1, voire une erreur.

En cas d'échec du DNS, je peux essayer un traceroute de l'adresse IP du DNS (ou un autre DNS tel que celui d'OpenDNS). Cela ne me dira pas seulement si le problème vient du DNS ou du FAI, cela me permettra souvent de contourner l'interruption.

Si tout se passe bien à ce stade, je sais que la connexion fonctionne normalement. il peut encore échouer pour certains sites. Tout ce dont j'ai besoin maintenant, c’est que isup.me soit activé :-), puis vérifiez

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

ou un site tel que Down Detector me tiendrai au courant de la "météo Internet".

En fait, sur mon serveur domestique, il y a un cache Squid et la page d'erreur contient les dernières données extraites avec succès des statistiques sur le site, de sorte que je peux voir quelque chose comme:

                Google.com is not reachable

                STORM ALERT: 12 out of 14 sites are unreachable!

tout comme c'est arrivé vendredi dernier ici en Italie.

13
LSerni

Comme un couple l’a dit, vous pouvez envoyer une requête ping au DNS principal de Google pour obtenir une réponse, mais ne vous fiez pas à une seule adresse. L'adresse (pour un certain nombre de raisons) peut être indisponible pendant une certaine période au cours de laquelle votre logiciel ne signalera "aucune connectivité", alors qu'en réalité, votre connectivité réseau ne rencontrera peut-être aucun problème. Vous devez toujours essayer de communiquer avec plusieurs adresses afin d’éliminer les faux négatifs.

J'écrirais une fonction qui pince une adresse une fois, si cela échoue, passez à une autre (jusqu'à, par exemple, trois adresses IP) et dès que vous obtenez quelques réponses positives, la fonction doit notifier à votre application/script qu'Internet est disponible et continuer.

6
Kinnectus

Lorsque je travaillais pour une entreprise disposant d’une connexion Internet floconneuse, j’avais un script qui testait la connectivité de plusieurs serveurs "toujours actifs": le routeur/commutateur de réseau local, le serveur de fichiers local, le routeur T1, le DNS du fournisseur puis Google. J'ai testé les deux derniers en tant qu'adresses numériques et domaines, afin de vérifier les problèmes DNS par rapport au ping en tant que tel. Si l'une des pings échouait trop souvent, j'avais une idée de l'endroit où le problème de connexion à Internet était le plus susceptible d'exister.

Pour l'adresse numérique de Google, je viens d'utiliser celle que j'avais obtenue de nslookup auparavant. Je n'ai jamais rencontré de problème. Je suppose que 8.8.8.8 serait plus simple.

Assez souvent, lorsque des gens appelaient pour dire «Internet était en panne», il s’avérait que seul DNS était en panne; nous pourrions appeler ces différentes choses, mais du point de vue de mes collègues, Internet n'était pas disponible dans les deux cas.

3
Zeph

J'utilise 4.2.2.1 depuis plus de 10 ans. Avant l'existence du service DNS public de Google. Cela semble être un cache DNS fiable et un répondeur ICMP.

3
rsenn

Essayez votre serveur DNS, vous en aurez quand même besoin (et la connexion externe de votre fournisseur de services Internet est peut-être en panne). Cela dépend vraiment de ce que vous voulez. Si vous devez accéder à un service spécifique, cochez-le.

2
vonbrand