Seite 3 von 3

Re: Mac-Adresse

Verfasst: 01.12.2014 12:30
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)

Re: Mac-Adresse

Verfasst: 01.12.2014 16:02
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.

Re: Mac-Adresse

Verfasst: 01.12.2014 16:20
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. :)

Re: Mac-Adresse

Verfasst: 01.12.2014 17:08
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?

Re: Mac-Adresse

Verfasst: 01.12.2014 17:46
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:

Re: Mac-Adresse

Verfasst: 01.12.2014 17:49
von RSBasic
Dann von mir herzlichen Dank für deine Arbeit. :allright: