Sascha: Überprüfen ob Wert eine Hardware-Addresse ist

Hallo und guten morgen Forum!

Ich bins mal wieder :-)

Ganz schnell und ganz kurz meine Probleme bzw. meine Fragen.

1.) Gibt es eine Möglichkeit in PHP einen Wert zu überprüfen, ob dieser eine Hardware-Adresse ist? Also eingegebene Werte können sein
 - 003AEDEF
 - 00:3A:ED:EF
 - 00-3A-ED-EF
 - 00.3A.ED.EF
Diese Werte sollen bei mir als Hardware-Adresse durchgehen, alles andere z.B.
 - 123honk
 - AE:SS:ED:AA
 - und/oder größer als acht Zeichen sollen abgelehnt werden.

Wisst Ihr eine Möglichkeit dieses Umzusetzen?

2.) Zu MySQL. Habt Ihr schon Erfahrung sammeln können im Bereich der Abspeicherung von IP-Adressen und/oder Hardwareadressen? Macht es mehr Sinn wenn ich IP's zu decimal bzw. hex-Zahlen umrechne oder sollte ich diese doch als klartext abspeichern? Was meint ihr dazu?

Vielen vielen dank schonmal von mir im Voraus und

viele Grüße

Sascha

  1. Hallo Sascha,

    Die Überprüfung kannst Du wie in Perl mit Regular Expressions machen. Ich lgaube die funktion in PHP heißt preg() oder so, findest Du sicher in der Doku.

    2.) Zu MySQL. Habt Ihr schon Erfahrung sammeln können im Bereich der Abspeicherung von IP-Adressen und/oder Hardwareadressen? Macht es mehr Sinn wenn ich IP's zu decimal bzw. »»

    Also spontan würde ich sagen, Varchar wäre der richtige Datentyp. Die Adressen als Zahlen zu behandeln würde nur Sinn machen, wenn Du Berechnungen durchführen willst.

    Gruss

    Marko

    1. Also spontan würde ich sagen, Varchar wäre der richtige Datentyp. Die Adressen als Zahlen zu behandeln würde nur Sinn machen, wenn Du Berechnungen durchführen willst.

      Gruss

      Marko

      Moin Marko,

      hab's in der Doku gefunden.

      Also Berechnungen möchte ich schon durchführen, also dann entscheide ich mich doch eher für die Zahlenvariante.

      vielen dank für Deine Meinung

      Gruß Sascha

      1. Hi,

        Also Berechnungen möchte ich schon durchführen, also dann entscheide ich mich doch eher für die Zahlenvariante.

        die Speicherung im hexadezimalen Zahlensystem erfordert weniger Specher, berechnungen darauf werden also schneller ausgefuehrt.

        Zum ueberpruefen der Hardwareadressen, die IEEE vergibt Prefixes (die ersten 4 Stellen) fuer Hardwarehersteller, damit laesst sich sogar eine ungefaehre Plausiblitaetspruefung bauen.

        Jan
        --

        1. Moin Moin !

          Zum ueberpruefen der Hardwareadressen, die IEEE vergibt Prefixes (die ersten 4 Stellen) fuer Hardwarehersteller, damit laesst sich sogar eine ungefaehre Plausiblitaetspruefung bauen.

          Es sind die ersten drei Bytes (6 Stellen in Hexadezimaldarstellung). Einige Prefixe sind allerdings für "virtuelle" Netzwerkkarten reserviert, z.B. für PPP und für Emulatoren wie Bochs oder VMWare.

          Alexander

          --
          Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
          Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"
          Mein "Lieblings-Forums-Bug": http://cforum.teamone.de/phpbt/bug.php?op=show&bugid=103&pos=2
          1. Hi,

            Es sind die ersten drei Bytes (6 Stellen in
            Hexadezimaldarstellung). Einige Prefixe sind allerdings
            für "virtuelle" Netzwerkkarten reserviert, z.B. für PPP und für
            Emulatoren wie Bochs oder VMWare.

            nichts geht ueber gepflegtes Halbwissen, Du hast natuerlich Rech, drei Byte, sechs Stellen, ich hab mich fuer die goldene Mitte entschieden ;).

            Virtuell oder nicht, wenn eine MAC Adresse nicht reserviert ist, ist sie gefaked.

            Jan
            --

            1. Moin Ihrs!:)

              Wo kann ich denn so eine Liste bekommen?

              sascha