Netzwerkstatus anzeigen lassen in c++ ......aber wie??
-
Hallo,
ich möchte gerne in c++ überprüfen lassen, ob ein netzwerkkabel eingesteckt oder entfernt wurde.Leider habe ich nur Grundlagenkenntnisse, weswegen ein Quellcode nicht schlecht wäre (mit includes etc.).
So dass man schreiben könnte: IF ("Netzwerkadapter #1" ==1) DO ....
oder so ähnlichVielen Dank!
-
Zu Deinen Grundkenntnissen scheint nicht "Suche nutzen" zugehören.
Daran solltest Du zuerst arbeiten und Dich dann auf die Trivialitäten wie Netzwerkprogrammierung werfen.Hier im Forum(
)
http://www.c-plusplus.net/forum/165179?highlight=netzwerkadapter
oder
bei den Leuten die Windows/MFC/WinAPI gebaut haben:
http://msdn.microsoft.com/en-us/library/ee663290
-
@noergel
Ich kann auf keiner der beiden verlinkten Seiten irgendwas zum Thema Netzwerkkabel finden.
-
Wie meinst du das jetzt genau? Möchtest du auf ein Event reagieren, wenn ein Kabel eingesteckt wird? Oder willst du wissen, ob eine Internetverbindung besteht? Bzw., willst du konkret wissen, ob in einer Buchse ein Kabel eingesteckt ist? Ich könnte in deine Frage alles mögliche reininterpretieren.
-
@hustbaer
ich hab den Threadstarter so verstanden, das er feststellen will ob eine Netzverbindung da ist.
Aber Du hast Recht, Netzwerkkabel an oder ab ist nicht dabei.
-
Erstmal Danke für die Antworten! Habe mir mal die Links angesehen und ein wenig damit gearbeitet.
Es ging eigentlich aber darum, ob ein Netzwerkkabel im eigenen PC eingesteckt ist oder nicht.Allerdings habe ich festgestellt, das selbst Windows soetwas nicht feststellen kann, denn lass ich ein Kabel im PC eingesteckt -entferne es aber aus einem Gerät (mit Stromversorgung), so gibt er als STATUS "Netzwerkkabel wurde entfernt" aus, obwohl das Netzwerkkabel ja noch eingesteckt ist.
Hab es jetzt so gelöst, dass wenn er keine IP über diesen Netzwerkausgang erhält, ist eben auch die Verbindung getrennt. Zwar nicht ganz das was ich eigentlich wollte...
Edit: Okay, die IP-Lösung funktioniert doch nicht. Schliesslich kann man Sie auch deaktivieren obwohl man mit einem Netzwerk verbunden ist.
Man müsste irgendwie Pakete schicken können und schauen ob diese auch zurückkommen, dann könnte man zumindest sicher sein, das das Netzwerkkabel auch mit einem Gerät verbunden ist.
-
Eine Kabelerkennung läuft, so vermute ich, auf Hardwarebene (Netzwerkkarte, -chip) und ist dann ein Fall für Dr. Assembler.
Allerdings habe ich im Netz eine Diskussion zu Deinem Thema gefunden allerdings mit C#/Net. Ein Workaround hier wäre der IP-Adressenwechsel bei abbrechender Konnektivität (Windows)
Dort wurde dann WSAEventSelect erwähnt(http://msdn.microsoft.com/en-us/library/ms741576%28VS.85%29.aspxZu Winsock2 Events (WSAEVENT) gibt es in der MSDN http://msdn.microsoft.com/en-us/library/ms740673%28v=vs.85%29
und im folgendem Artikel Informationen/Source zum Thema Benachrichtigung bei Verbindungsabbruch (== Kabelziehen)
http://www.codeproject.com/Articles/1089/Winsock2-Network-EventsIch denke der Network Activity Indicator (Win7)
http://www.codeproject.com/Articles/44226/Network-Activity-Indicator-for-Windows-7 gibt in der Beziehung auch einiges her.