MAC-Adresse ausgeben



  • Hallo zusammen,
    ich habe jetzt schon etliche Stunden mit googlen auf den Kopf gehauen, finde allerdings keinen Beitrag, der das Problem konkret beantwortet. Viele Beiträge sind unvollständig und zeigen nur einen Funktionsausscnitt.
    Ich suche eine Funktion, die die Mac-Adresse des Computers ausgibt. Der Verweis auf verwendete Bibliotheken fände ich auch sehr hilfreich. Generell wäre eine Headerdatei dazu praktisch. Falls jemand einen guten Beitrag dazu gefunden hat, freue ich mich auch darüber.

    MfG



  • Mit Standard-C allein geht das nicht. Du wirst die jeweiligen APIs des jeweiligen Betriebssystems verwenden müssen...


  • Mod

    Das Problem fängt schon damit an, dass es nicht die MAC-Adresse eines Computers gibt.

    Spekulation: Threadersteller möchte in Wirklichkeit einen Computer eindeutig identifizieren, weiß aber nicht, was MAC-Adressen sind.



  • SeppJ schrieb:

    Das Problem fängt schon damit an, dass es nicht die MAC-Adresse eines Computers gibt.

    Spekulation: Threadersteller möchte in Wirklichkeit einen Computer eindeutig identifizieren, weiß aber nicht, was MAC-Adressen sind.

    Diese Spekulation trifft zu. Die MAC-Adresse ist doch der Netzwerkkarte zugeordnet?!
    Ich habe momentan ein Programm(eigentlich zwei Programme), die über TCP kommunizieren. Dabei möchte ich es ermöglichen, dass nicht nur ein Programm zu einem anderen etwas senden kann, sondern mehrere Programme von verschiedenen Rechnern Signale zu einem Rechner senden. Wie dem auch sein, ich muss dazu die Sender differenzieren können und bin dabei bei der Idee mit den MAC-Adressen gelandet.



  • coon schrieb:

    SeppJ schrieb:

    Das Problem fängt schon damit an, dass es nicht die MAC-Adresse eines Computers gibt.

    Spekulation: Threadersteller möchte in Wirklichkeit einen Computer eindeutig identifizieren, weiß aber nicht, was MAC-Adressen sind.

    Diese Spekulation trifft zu. Die MAC-Adresse ist doch der Netzwerkkarte zugeordnet?!
    Ich habe momentan ein Programm(eigentlich zwei Programme), die über TCP kommunizieren. Dabei möchte ich es ermöglichen, dass nicht nur ein Programm zu einem anderen etwas senden kann, sondern mehrere Programme von verschiedenen Rechnern Signale zu einem Rechner senden. Wie dem auch sein, ich muss dazu die Sender differenzieren können und bin dabei bei der Idee mit den MAC-Adressen gelandet.

    Das ist keine gute Idee. Es ist nicht garantiert, dass ein Rechner, der über TCP/IP kommuniziert, überhaupt eine MAC-Adresse hat und wenn, dann ist eine solche weder fix, noch eindeutig und jeder Rechner kann schnell mal gleich auch mehrere davon haben...

    Am einfachsten verwendest du eher sowas wie eine GUID oder denkst dir/suchst dir ein Protokoll aus, das jedem Rechner eine eindeutige ID zuweist...



  • Eigentlich ergeben die IP-Adresse sowie der Port eine endeutige Identifikation.



  • Nun, das hängt wohl stark davon ab, was für eine "IP" man genau verwendet... 😉


  • Mod

    coon schrieb:

    SeppJ schrieb:

    Das Problem fängt schon damit an, dass es nicht die MAC-Adresse eines Computers gibt.

    Spekulation: Threadersteller möchte in Wirklichkeit einen Computer eindeutig identifizieren, weiß aber nicht, was MAC-Adressen sind.

    Diese Spekulation trifft zu. Die MAC-Adresse ist doch der Netzwerkkarte zugeordnet?!

    Die MAC ist einer (bestimmten Art von) Netzwerkschnittstelle zugeordnet. Von denen es beliebig viele geben kann. Und ganz wichtig: Es ist bloß eine Zahl in der Software.

    Bessere Ideen wurden im Thread genannt.



  • dot schrieb:

    Nun, das hängt wohl stark davon ab, was für eine "IP" man genau verwendet... 😉

    Wie meinst du das?



  • Nun, die IP, die ein Computer hinter einer NAT hat, ist beispielsweise eine andere, als die, die er von außen gesehen hat...



  • Trotzdem kann man ihn dann durch den Port identifizieren. Wie denkst du sollte sonst dieser Thread bei dir auf dem Bildschirm landen? 😉



  • Nun, ja, die NAT kann das. Der PC hinter der NAT hat aber keine Ahnung, wie seine "ID" aussieht, ohne dass er jemanden außerhalb der NAT frägt. Und diese "ID" kann sich mit jeder Connection ändern...



  • Aber darum gehts doch gar nicht, oder? Es geht doch darum, dass der Server seine Clienten unterscheiden kann.



  • Ich dachte, es geht darum, dass einzelne Nodes in einem verteilen System die Quelle einer Nachricht identifizieren können sollen. Je nachdem, wie genau das Senden dieser Nachrichten abläuft, kann das mit der IP+Port Kombination funktionieren oder nicht. Die Frage ist aber schonmal, wie genau du überhaupt erstmal sicherstellen willst, dass die einzelnen Nodes alle die selbe IP+Port Kombination sehen...



  • Wenn es darum geht, dass die Nodes nicht nur für sich den anderen IDs zuordnen, sondern diese auch global gelten sollen, wird es natürlich schwieriger. Da wäre ein Hauptserver, der diese IDs verteilt wohl die einzige Lösung.



  • Wie bereits vorgeschlagen habe ich mir jetzt ein eigenes Protokoll gemacht, das die Computer eindeutig identifizieren sollte. Danke für den vielen Beiträge.

    Der Thread wäre somit geschlossen


Anmelden zum Antworten