Internet Adapter finden



  • Frohe Ostern! Ich schreibe momentan ein Programm, welches die Mac-Adresse des Adapters benötigt, der mit dem Internet verbunden ist.
    Konkret: Ich habe zwei Netzwerkkarten. Die eine ist mit dem Internet verbunden (WLAN) und an der anderen hängt ein anderer PC (Ethernet), welcher meinen PC als Knotenpunkt zum Internet benutzt.
    Jetzt möchte ich die Mac-Adresse von der ersten (WLAN-)Netzwerkkarte herausfinden.
    Allgemein: Ich möchte also die Macadresse des Adapters herausfinden, der sich mit dem Internet verbindet.

    Mein Ansatz war bisher GetAdaptersAddresses, doch hier habe ich keine Möglichkeit gefunden zu unterscheiden, welcher Adapter mit dem Internet verbunden ist.
    Man könnte dieses Problem bestimmt auch über Sockets lösen, aber das finde ich etwas unelegant.



  • Früher gab es kein ausgezeichnetes "Internet"-Netzwerk :D, aber eine Kombination von GetBestInterface(0, ...) (also IP: 0.0.0.0) und GetIfEntry() könnte ein Workaround für dein Problem sein.
    Besser ist es aber sicher GetBestInterface() für eine gültige IP-Adresse im Internet aufzurufen.

    Wenn aber mehrere Adapter in der Lage wären dich mit dem Internet zu verbinden, entscheidet die Routing-Tabelle (GetIpForwardTable(), ...) und die Metrik welche normalerweise genommen wird.

    Vielleicht hat aber Vista+ eine neue API eingeführt um die "Reichweite" eines Adapters zu bestimmen. Schließlich zeigt die GUI ja auch das kleine gelbe Rufzeichen, wenn ein Netzwerk nicht ins Internet reicht. 😉
    Ich wette Windows versucht dafür eine Verbindung zu microsoft.com aufzubauen 😃


Log in to reply