2017-06-20 4 views
-3

Können Sie mir eine einfachste Methode geben, die Internetverfügbarkeit mit einem C-Programm in Linux zu überprüfen?Gibt es Bibliotheksfunktionen in C, um die Internetverbindung zu überprüfen?

Ich habe ein Programm implementiert, um den Systembefehl 'traceroute' in C auszuführen. Vorher muss ich prüfen, ob die Internetverbindung verfügbar ist oder nicht. Können Sie also eine Methode vorschlagen?

+4

"Funktioniert nicht gut" ist wie lange Kaffeepausen oder was? –

+0

Gibt es Bibliotheksfunktionen? (Ich bin neu in der Netzwerk-Programmierung) –

+0

Nun, es gibt ein großes Problem - das Internet existiert nicht als eine Einheit, so dass Sie keine "Verbindung" zu ihm 100% zuverlässig erkennen können. Sie können mit einiger Sicherheit raten - wenn Sie Google anpingen und es scheitert, .haben Sie keine Internetverbindung ... oder Google ist aus irgendeinem Grund zu dieser Zeit nicht erreichbar ..... – ThingyWotsit

Antwort

0

Kurze Antwort: Nein. Weder C noch C++ haben direkte Kenntnisse über Netzwerke oder integrierte Netzwerkfunktionen.

Je nachdem, was 3rd-Party-Bibliotheken, die Sie verwenden, es kann etwas, die Sie verwenden können, aber das hängt von der Bibliothek ist es nicht direkt Teil von C.

ich dort Bibliotheken aus sind sich vorstellen können Dort könnte versucht werden, eine interne/externe Adresse zu pingen, einen Namenssuchlauf durchzuführen, etc. Aber wenn du in einem isolierten Netzwerk bist, kann es nicht die Fähigkeit zum Pingen, Suchen oder Überqueren einer Firewall geben, um an einen bestimmten Ort zu gelangen absolut gültig und zeigt kein Netzwerkproblem an.

+0

Danke. Können Sie mir eine Methode vorschlagen, um die Internetverfügbarkeit zu überprüfen? Ich frage nach einer einfachen c-Funktion oder so ähnlich .. –

+3

"Simple"? Nein. Hängt davon ab, was benötigt wird, und das Netzwerk. Müssen Sie die Verbindung zu einem Server überprüfen? Überprüfen Sie, ob der Nameserver aktiv ist. Überprüfen Sie, ob die Firewall TCP- oder UDP-Pakete durchlässt. Überprüfen, ob ein Port offen ist? Es gibt keine "einfache" Lösung für diese Frage. –

+0

Ok. Ich benutze nur den 'traceroute' Befehl mit einem C-Programm. Also, ich muss die Internetverbindung überprüfen, bevor Sie den Systembefehl ausführen. Das ist mein Problem. Bitte können Sie eine Methode vorschlagen, um dies zu tun. –

Verwandte Themen