Frage

Unser Team entwickelt eine Internet Media Gerät auf Basis von Linux 2.6. Derzeit erkennen wir, ob eine Internetverbindung hergestellt wird (über eine verdrahtete Ethernet-i / f) durch Pingen www.google.com

Einige Netzwerke wir das Gerät getestet und auf keine Unterstützung für ICMP-Paketweiterleitung, so dass unser Anwendungscode meldet fälschlicherweise das Internet wie in diesem Fall nicht zur Verfügung.

Kennt jemand einen verfeinerten Ansatz herzuzuleiten, ob Internet-Konnektivität über / dev / eth0, ohne auf Pingen einen bekannten Dienst verfügbar ist?

War es hilfreich?

Lösung

Wie der Mann, der diese Antwort von ChristopheD verwiesen schrieb, das ist nicht der Ansatz, den ich hier verwenden würde. Er arbeitete für die andere Frage, denn in diesem Fall, dass wir auf das Vorhandensein einer direkten PPP-Verbindung von der aktuellen Maschine überprüft wurden - in diesem Fall sind Sie zu einem abitrary Netzwerk verbunden, die nicht bereits eine Standardroute haben kann oder nicht, unabhängig von seiner breiteren Internet-Konnektivität.

Da Sie globale DNS-Konnektivität für Ihre Anwendung benötigen, würde ich für die Check - nachschlagen eine Adresse, die Sie wissen, wird es immer geben - wie eine NS Typ-Abfrage für die com. Domäne. Verwenden Sie einen ausreichend langen Timeout und / oder versuchen Sie es erneut ein paar Mal, bevor er aufgibt. So etwas wie folgt aus:

dig NS +aaonly com.

Ignorieren Sie die Ausgabe und testen Sie die Exit-Wert -. 0 zeigt die Suche Lage war, die Root-Server zu kontaktieren, etwas anderes und es war nicht

Andere Tipps

Schließlich wollen Sie das Gerät in der Lage sein, das Internet für einige nützliche Funktion zu verwenden. Wenn es einen gut definierte Server ist, dass das Gerät gemeinhin verbindet, dann wäre es sinnvoll sein, eine Anfrage an die senden.

zwischen „nichts“ und „nützlicher Funktion“ gibt es viele Schritte, und Sie könnten möglicherweise als ein gewisses Maß an „connectivity“ alle diejenigen überprüfen:

  • Ethernet-Kabel angeschlossen (oder PPP-Verbindung hergestellt oder Wi-Fi, was auch immer Ihre niedrige Schicht)
  • DHCP-Server zugewiesene Adresse (falls zutreffend)
  • Standard-Gateway funktioniert
  • DNS-Server antwortet
  • Zielserver antwortet (vielleicht nicht ein ICMP-Ping, aber eine kleine HTTP-Abfrage oder was auch immer anderes Protokoll Sie verwenden könnten)

Je, wie versierte Ihr Kunde ist, oder wenn Sie einen nützlichen Fehler / Diagnose wollen, dass sie zu dem technischen Support berichten können, könnte es nützlich sein, alle diejenigen zu erkennen.

könnte auch nützlich sein, in der Lage, einen trace als diagnostisches Werkzeug zu tun.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top