AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Mac Adresse mit IP herausfinden... Habe code, wie anpassen?
Thema durchsuchen
Ansicht
Themen-Optionen

Mac Adresse mit IP herausfinden... Habe code, wie anpassen?

Ein Thema von hedie · begonnen am 31. Jul 2011 · letzter Beitrag vom 14. Aug 2013
Antwort Antwort
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.757 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: Mac Adresse mit IP herausfinden... Habe code, wie anpassen?

  Alt 31. Jul 2011, 17:45
Hallo,

wenn die Zieladresse nicht in Deinem Netzwerksegment liegt,
ist die MAC-Adresse die Du im Wireshark siehst die Deines nächsten Hops.
In der Regel Dein Defaulrouter.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Mac Adresse mit IP herausfinden... Habe code, wie anpassen?

  Alt 31. Jul 2011, 17:57
Du solltest dich wirklich mal mit den Grundlagen von Netzwerken beschäftigen.
Markus Kinzler
  Mit Zitat antworten Zitat
SirTwist

Registriert seit: 28. Sep 2006
196 Beiträge
 
Delphi XE Professional
 
#3

AW: Mac Adresse mit IP herausfinden... Habe code, wie anpassen?

  Alt 1. Aug 2011, 22:18
ohne mich jetzt groß in die Doku der verwendeten System-Calls eingelesen zu haben, habe ich den Verdacht, dass hier Windows-eigene Funktionen genutzt werden... sowas wie NetTransportEnum finde ich schon recht verdächtig. Und das wird natürlich mit einem Eipfone nicht funktionieren.

Einfacher geht folgendes: erstmal die IP-Adresse anpingen, und dann die lokale ARP-Tabelle auslesen. An der Kommandozeile wäre das ein "ping 192.168.25.1" und danach ein "arp -a", da kommt dann sowas bei rum:
Code:
C:\Users\benutzer>arp -a

Schnittstelle: 192.168.25.10 --- 0xa
  Internetadresse      Physische Adresse    Typ
  192.168.25.1          00-0c-4d-35-82-d0     dynamisch
  192.168.25.5          00-0c-d6-13-7e-dd    dynamisch
  192.168.25.255        ff-ff-ff-ff-ff-ff    statisch
Ich weiß, dass ich das auch mal mit Indy-Komponenten programmiert habe, aber ich komm an den Quellcode nicht mehr ran.

Geändert von SirTwist ( 2. Aug 2011 um 05:48 Uhr)
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.618 Beiträge
 
Delphi 12 Athens
 
#4

AW: Mac Adresse mit IP herausfinden... Habe code, wie anpassen?

  Alt 11. Aug 2013, 12:49
ohne mich jetzt groß in die Doku der verwendeten System-Calls eingelesen zu haben, habe ich den Verdacht, dass hier Windows-eigene Funktionen genutzt werden... sowas wie NetTransportEnum finde ich schon recht verdächtig. Und das wird natürlich mit einem Eipfone nicht funktionieren.

Einfacher geht folgendes: erstmal die IP-Adresse anpingen, und dann die lokale ARP-Tabelle auslesen. An der Kommandozeile wäre das ein "ping 192.168.25.1" und danach ein "arp -a", da kommt dann sowas bei rum:
Code:
C:\Users\benutzer>arp -a

Schnittstelle: 192.168.25.10 --- 0xa
  Internetadresse      Physische Adresse    Typ
  192.168.25.1          00-0c-4d-35-82-d0     dynamisch
  192.168.25.5          00-0c-d6-13-7e-dd    dynamisch
  192.168.25.255        ff-ff-ff-ff-ff-ff    statisch
Ich weiß, dass ich das auch mal mit Indy-Komponenten programmiert habe, aber ich komm an den Quellcode nicht mehr ran.

Thema ist schon wieder lange her, aber ich komme auch nicht weiter, wie ich mit einer bekannten IP auf die MAC eines Rechners schliessen kann, wenn diese im selben Subnetz liegt. Der Code weiter oben bringt mir auch nur '00-00-00-00-00-00' und
ShowMessage('\\192.168.x.x') bring auch nur denselben String zurück.
Mit arp -a geht es im CMD, aber da müsste ich erst eine Routine rundrum bauen, im die Ergebnisse umzuleiten.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.618 Beiträge
 
Delphi 12 Athens
 
#5

AW: Mac Adresse mit IP herausfinden... Habe code, wie anpassen?

  Alt 13. Aug 2013, 19:34
push
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Mac Adresse mit IP herausfinden... Habe code, wie anpassen?

  Alt 13. Aug 2013, 20:28
Hi,

also ich mache das Ganze mit der folgenden Funktion:

Delphi-Quellcode:
function SendARP(const DestIP, SrcIP: in_addr; pMacAddr: PULONG;
                 var PhyAddrLen: ULONG): DWORD; stdcall;
                 external 'IPHLPAPI.DLLname 'SendARP';
                                                                                                             
function GetMacAddr(const IPv4: String): String;
  const
    SrcIP: in_addr = (S_addr: 0);
  var
    DestIP: in_addr;
    MacAddr: array[0..5] of Byte;
    MacAddrLen, RC: DWORD;
    i: Integer;
begin
  Result := '';
  DestIP.S_addr := inet_addr(PAnsiChar(AnsiString(IPv4)));
  MacAddrLen := Length(MacAddr);
  RC := SendARP(DestIP,SrcIP,@MacAddr,MacAddrLen);
  case RC of
    NO_ERROR:
      begin
        if (MacAddrLen = 6) then
          for i := 0 to 5 do begin
            if (i > 0) then
              Result := Result + ':';
            Result := Result + IntToHex(MacAddr[i],2);
          end
        else
          Result := 'Error: MacAddrLen='+IntToStr(MacAddrLen);
      end;
    ERROR_GEN_FAILURE:
      Result := 'MAC-Adresse konnte nicht ermittelt werden. Fehler:' + #13#10 + 'ERROR_GEN_FAILURE';
    ERROR_INVALID_PARAMETER:
      Result := 'MAC-Adresse konnte nicht ermittelt werden. Fehler:' + #13#10 + 'ERROR_INVALID_PARAMETER';
    ERROR_INVALID_USER_BUFFER:
      Result := 'MAC-Adresse konnte nicht ermittelt werden. Fehler:' + #13#10 + 'ERROR_INVALID_USER_BUFFER';
    ERROR_BAD_NET_NAME:
      Result := 'MAC-Adresse konnte nicht ermittelt werden. Fehler:' + #13#10 + 'ERROR_BAD_NET_NAME';
    ERROR_BUFFER_OVERFLOW:
      Result := 'MAC-Adresse konnte nicht ermittelt werden. Fehler:' + #13#10 + 'ERROR_BUFFER_OVERFLOW';
    else
      Result := 'Error: RC='+IntToStr(RC);
  end;
end;
Klappt bei mir hervorragend.
  Mit Zitat antworten Zitat
mentaltec

Registriert seit: 28. Sep 2012
60 Beiträge
 
#7

AW: Mac Adresse mit IP herausfinden... Habe code, wie anpassen?

  Alt 14. Aug 2013, 08:46
MS bevorzugt ab Vista / Server2008 diese Methode:

Iphlpapi.dll :: ResolveIpNetEntry2() aus Netioapi.h (bzw. Iphlpapi.h)

http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz