Announcement

Collapse
No announcement yet.

Ermitteln der Netzwerkadresse

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Ermitteln der Netzwerkadresse

    Hallo

    Habe die funktion von Herrn Kosch<BR>
    GetMAC verwendet.<BR>

    Habe das gleiche Problem wie Patrick Esche, ich bekomme immer eine ander Adresse im Result.

    Was ist falsch?

    Gruss Rudolf

  • #2
    Ich habe wohl versäumt, die Funktion mit aufzugeben, da dieses Theme bereits am 30.10.2002 behandelt wurde <BR>

    uses ComObj, ActiveX; <BR>
    function GetMAC:String;<BR>
    var<BR>
    sTmp:String;<BR>
    i :Integer;<BR>
    aGUID:TGUID;<BR>
    begin<BR>
    OleCheck(CoCreateGUID(aGUID));<BR>
    sTmp:='';<BR>
    for i:=2 To 7 do<BR>
    sTmp:=sTmp + IntToHex(aGUID.D4[i],2);<BR>
    Result:= sTmp;<BR>
    end;<BR>

    vielen Dank für Hilf

    Comment


    • #3
      Ich habe wohl versäumt, die Funktion mit aufzugeben, da dieses Theme bereits am 30.10.2002 behandelt wurde <BR>

      uses ComObj, ActiveX; <BR>
      function GetMAC:String;<BR>
      var<BR>
      sTmp:String;<BR>
      i :Integer;<BR>
      aGUID:TGUID;<BR>
      begin<BR>
      OleCheck(CoCreateGUID(aGUID));<BR>
      sTmp:='';<BR>
      for i:=2 To 7 do<BR>
      sTmp:=sTmp + IntToHex(aGUID.D4[i],2);<BR>
      Result:= sTmp;<BR>
      end;<BR>
      Vielen Dan

      Comment


      • #4
        Hallo,

        die Win32-API-Funktion <b>CoCreateGUID</b> hat bis zu Windows 2000 nur Version 1-GUIDs generiert. Ab Windows 2000 wechselte Microsoft zur Version 4, da dort die MAC-Adresse nicht mehr enthalten ist. Der Grund dafür waren Anwürfe von Außen, da über die GUID ein Modul bis zu einem bestimmten Rechner nachverfolgt werden konnte. Um die Privatphäre zu schützen, ist die MAC-Adresse nun nicht mehr in der GUID enthalten.

        Die GUID-Versionsnummer ist fest codiert:
        <pre>
        {8610F851-97FA-<b><font color="#ff0000">4</font></b>852-BC6D-D6073D443412}
        </pre>
        Microsoft hat in seiner Knowlegde Base einen Beitrag veröffentlich, nach dem nur noch der NetBIOS-Aufruf (Network Basic Input/Output System) der einzige legale Weg ist. Dies sollte auch dann funktioneren, wenn das NetBEUI-Protokoll nicht aktiviert wurde.
        &#10

        Comment


        • #5
          hallo Herr Kosch <BR>

          Vielen Dank für die Erklärung, dass es mit GetMac über GUID nicht geht. <BR>
          Aber nun muss ich wieder die Frage stellen, wie bekomme ich die Netzwerkkarten-Adresse.<BR>

          Haben Sie eine andere Lösung? <BR>

          Gruss Rudolf Terpp

          Comment


          • #6
            Hallo,<br>
            versuche es mal hiermit:
            <pre>
            function getNetAdr:ansistring;
            type
            pt1 = ^t1 ;
            t1 = record
            PAS1 : TAdapterStatus ;
            NB1 : TNameBuffer ;
            end ;
            var
            PNcb1 : PNCB ;
            p1 : t1 ;
            begin
            New (PNcb1) ;
            Fillchar (PNcb1^, sizeof(PNcb1),0 ) ;
            Pncb1^.ncb_command := char(NCBRESET) ;
            Pncb1^.ncb_lana_num := char(0) ;
            Netbios( PNcb1 ) ;
            Fillchar (PNcb1^, sizeof(PNcb1),0 ) ;
            Pncb1^.ncb_command := char(NCBASTAT) ;
            Pncb1^.ncb_lana_num := char(0) ;
            StrPCopy(Pncb1^.ncb_callname, '* ') ;
            Pncb1^.ncb_buffer := @p1 ;
            Pncb1^.ncb_length := sizeof(p1) ;
            Netbios( PNcb1 ) ;
            result := Format('%x-%x-%x-%x-%x-%x',[
            ord(p1.pas1.adapter_address[0]), ord(p1.pas1.adapter_address[1]),
            ord(p1.pas1.adapter_address[2]), ord(p1.pas1.adapter_address[3]),
            ord(p1.pas1.adapter_address[4]), ord(p1.pas1.adapter_address[5])]);
            Dispose (PNcb1) ;
            end ;
            </pre>
            <br>
            Gruß<br>
            Patric

            Comment


            • #7
              Hallo Patrick<BR>

              Ich habe den Schriftwechsel am 30.10.2002
              wegen der MAC-Adresse gelesen. Schade das die Funktion von Herrn Kosch nicht mehr verwendbar ist.<BR>

              Vielen Dank für die neue Funktion, bin damit völlig überfordert.<BR>

              Welche uses werden benötigt?<BR>

              vielen Dank.<BR>

              Gruss Rudol

              Comment


              • #8
                Hallo Rudolf,<br>
                Du mußt die Units winsock, SysUtils und nb30 einbinden.<br>
                Gruß<br>
                Patric

                Comment


                • #9
                  Hallo Patrick <BR>

                  Funktion läuft. <BR>

                  Ich verwende eine 3Com 3C920 fast Internet-karte <BR>

                  Aber leider erhalte ich eine andere Adresse als mit IPCONFIG /All <BR>

                  Result aus Function: F4-6E-F-1-0-0 <BR>

                  IPConfig: 00-06-5B-A6-D0-41 <BR>

                  Etwas ist falsch.<BR>

                  Hast Du eine Idee? <BR>

                  Gruss Rudolf<BR&gt

                  Comment


                  • #10
                    Hallo Rudolf,<br>
                    puh...<br>
                    Nee, keine Idee, bei mir liefert die Funktion das korrekte Ergebnis. Ich habe diese Funktion auch nur hier im Forum von Andreas Kosch bekommen und 1:1 übernommen. Vielleicht kann er dir ja da weiterhelfen, ich kann es definitiv nicht<br>
                    Viel Glück!<br>
                    Patric

                    Comment


                    • #11
                      Hallo Patrick<BR>

                      Ich habe von der Seite www.jedi.delphi-source.de die kostenlose Jedi Code Library runtergeladen mit Units und installiert.
                      Diese Library hat viele nützliche Funktionen.<BR>
                      Es gibt dort auch eine Komonenten Library.<BR>

                      Für die MAC adresse wird die Unit JCLSysInfo benötigt<BR>

                      ...<BR>
                      sl:=TStringList.create;<BR>
                      GetMacAdresses('',sl);<BR>
                      ...<BR>

                      jetzt habe ich die richtige Adresse

                      gruss Rudol

                      Comment

                      Working...
                      X