Mac-Adresse

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Vera
Beiträge: 928
Registriert: 18.03.2009 14:47
Computerausstattung: Win XP SP2, Suse 11.1
Wohnort: Essen

Re: Mac-Adresse

Beitrag von Vera »

stevie1401 hat geschrieben:Ich benötige die Mac-Adresse zur Erkennung von Spielerrechnern.
Ah - darf ich noch fragen, was einen Spielerechner von einem 'normalen' Rechner unterscheidet?

ps: 'Einstellung' bezog sich auf 'arp' und die AdminProblematik.


Dank Dir auch Shardik :-)
... besonders für die verständnisbildenden Hinweise.
Auf meiner Suse 11.1 mit KDE werden via PB 4.50 zwei Schnittstellen ermittelt (was vermutlich alle sind)
°
<°)))o><
~~~~~~~~~
echo "Don't worry"
echo "Keep quiet"
@echo off
format forum:\
Benutzeravatar
Shardik
Beiträge: 746
Registriert: 25.01.2005 12:19

Re: Mac-Adresse

Beitrag von Shardik »

RSBasic hat geschrieben:
Shardik hat geschrieben:Das verlinkte Windows-Beispiel von RSBasic ermittlet die Hardware GUID, aber nicht die gewünschte MAC-Adresse [...]
Ja, das war beabsichtigt. Eine Lösung zum Ermitteln der MAC-Adresse habe ich bereits anfangs gepostet:
RSBasic hat geschrieben:Für Windows: http://www.rsbasic.de/aktualisierung/wi ... mitteln.pb
Entschuldigung, ich war nur dem Link in Bisontes Beitrag gefolgt und hatte versäumt, den Link in Deinem 1.Beitrag direkt auf die Frage von stevie1401 zu öffnen!

Allerdings hat das von Dir verlinkte Beispiel von Flype einen großen Nachteil: es untersucht nur den ersten Eintrag einer Netzwerkkarte. So wird auf meinem aktuellen Rechner nur die MAC-Adresse einer virtuellen Netzwerkkarte angezeigt, die mich aber normalerweise nicht interessiert... Daher ist es sicherlich sinnvoller, alle Einträge von Netzwerkkarten auszuwerten. Ich habe dazu ein weiteres Windows-Beispiel erstellt (wieder getestet unter Windows XP SP3 und Windows 7 SP1 x86):

Code: Alles auswählen

EnableExplicit

Define AdapterNumber.I
Define i.I
Define IP.I
Define MacAddress.S
Define MACBufferSize.I = 6
Define MACInfo.S
Define Result.I

Dim MACArray.A(5)

If InitNetwork()
  ExamineIPAddresses()

  Repeat
    IP = NextIPAddress()

    If IP
      AdapterNumber = AdapterNumber + 1
      MacAddress = ""
      MACInfo + "Netzwerkkarte " + Str(AdapterNumber) + ": " + "IP-Adresse = " + IPString(IP)
      Result = SendARP_(IP, 0, @MACArray(0), @MACBufferSize)
      
      If Result = #NO_ERROR
        For i = 0 To 4
          MacAddress = MacAddress + RSet(Hex(MACArray(i)), 2, "0") + ":"
        Next
        
        MACAddress = MACAddress + RSet(Hex(MACArray(i)), 2, "0")
        MACInfo + ", MAC-Adresse = " + MACAddress + #CR$
      Else
        MessageRequester("Fehler", "Die Ermittlung der MAC-Adresse für IP " +
          IPString(IP) + " ist fehlgschlagen!", #MB_ICONEXCLAMATION)
      EndIf
    EndIf
  Until IP = 0
EndIf

MessageRequester("MAC-Adressen", MACInfo, #MB_ICONINFORMATION)
Ich habe auch noch eine Anregung für Deine von mir sehr geschätzte Sammlung von Windows API Beispielen: ich habe schon öfter den Link zu dem Forenbeitrag Deines Beispiels vermisst (wenn das Beispiel aus einem Forenbeitrag kopiert wurde oder darauf aufbaut). In Deinem verlinkten Beispiel also

http://www.purebasic.fr/english/viewtop ... 6&start=13

Denn dieser Link zum Forenbeitrag bringt oft noch einen Mehrwert, weil man über den Link auch andere alternative Beispiele findet (z.B. in diesem Fall ein weiteres Beispiel von ABBKlaus) oder in der Zwischenzeit sogar noch Verbesserungen oder Fehlerbehebungen erschienen sind.
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Mac-Adresse

Beitrag von RSBasic »

Shardik hat geschrieben:ich habe schon öfter den Link zu dem Forenbeitrag Deines Beispiels vermisst (wenn das Beispiel aus einem Forenbeitrag kopiert wurde oder darauf aufbaut).
Jupp, du hast recht. Leider habe ich das von Anfang an nicht gemacht, sondern habe nur den jeweiligen Autor genannt. Ebenfalls in meiner Backupliste habe ich keine Forenthreadlinks miteingefügt, die natürlich ebenfalls hilfreich gewesen wären, aber daran habe ich damals nicht gedacht und nach einer hohen Anzahl habe ich leider auch keine Lust, die einzelnen Forenlinks nachträglich hinzuzufügen. Aber ja, die Links hätte ich mitangeben müssen, dann hätte man auch gleich die Forenbeiträge, die man lesen kann. :)
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Mac-Adresse

Beitrag von NicTheQuick »

@Shardik:
Bist du einfach durch ein wenig googlen auf die korrekte API gestoßen oder hast du zufällig einen Link zu einer größeren Sammlung von Linux-Libraries und ihrer Funktionen parat?
Benutzeravatar
Shardik
Beiträge: 746
Registriert: 25.01.2005 12:19

Re: Mac-Adresse

Beitrag von Shardik »

NicTheQuick hat geschrieben:@Shardik:
Bist du einfach durch ein wenig googlen auf die korrekte API gestoßen oder hast du zufällig einen Link zu einer größeren Sammlung von Linux-Libraries und ihrer Funktionen parat?
Es war harte Arbeit: ich habe das ganze Wochenende damit zugebracht, mich in die BSD-Socketprogrammierung einzuarbeiten. Dazu habe ich sowohl Google genutzt, um die C-Header-Dateien, in denen die nötigen Strukturen definiert sind, zu finden als auch die Header-Dateien von MacOS und Linux durchgeackert. Für einige Sonderfunktionen mußte ich teilweise kompliziert verschachtelte Makros aus den Header-Dateien nachprogrammieren. Die gezeigten Beispiele stellen nur die Spitze des Eisberges dar... :lol:
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Mac-Adresse

Beitrag von RSBasic »

Dann von mir herzlichen Dank für deine Arbeit. :allright:
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Antworten