AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte GetMAC - Ein Programm zum Ermitteln von MAC-Adressen
Thema durchsuchen
Ansicht
Themen-Optionen

GetMAC - Ein Programm zum Ermitteln von MAC-Adressen

Ein Thema von Luckie · begonnen am 16. Jun 2008 · letzter Beitrag vom 13. Sep 2010
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von Luckie
Luckie
Registriert seit: 29. Mai 2002
Wie der Titel schon sagt, kann man mit GetMAC die MAC-Adressen von Rechnern im Netzwerk ermitteln. Dabei kann man entweder die IP-Adresse des Rechner angeben oder alternativ dessen Namen:
GetMAC /a:192.168.100.6 oder GetMAC /n:Michael

Jetzt gib es auch eine Version mit grafischer Benutzeroberfläche.

Programme mit Source und Screenshot im Anhang.
Miniaturansicht angehängter Grafiken
getmac_688.jpg   getmac_gui.jpg  
Angehängte Dateien
Dateityp: zip GetMAC.zip (182,3 KB, 142x aufgerufen)
Ein Teil meines Codes würde euch verunsichern.

Geändert von Luckie (13. Sep 2010 um 17:22 Uhr)
 
Benutzerbild von Luckie
Luckie

 
Delphi 2006 Professional
 
#21
  Alt 12. Sep 2010, 13:31
Gute Frage ehrlich gesagt. Daran habe ich gar nicht gedacht, dass ein Rechner mehrere Netzwerkkarten haben könnte.

Das ist die Funktion, die ich nutze:
Delphi-Quellcode:
function GetMacAddr(IP: string; var MAC: string): Integer;
var
  DestIP: IPAddr;
  pMacAddr: PULong;
  AddrLen: ULong;
  MacAddr: array[0..5] of byte;
  p: PByte;
  i: integer;
  res: Integer;
begin
  DestIp := inet_addr(PChar(IP));
  pMacAddr := @MacAddr[0];
  AddrLen := SizeOf(MacAddr);

  res := SendARP(DestIP, 0, pMacAddr, AddrLen);
  if res = NO_ERROR then
  begin
    p := PByte(pMacAddr);
    for i := 0 to AddrLen - 1 do
    begin
      MAC := MAC + IntToHex(p^, 2) + '-';
      Inc(p);
    end;
    SetLength(MAC, length(MAC) - 1);
  end;

  Result := res;
end;
Michael
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze

 
Turbo Delphi für Win32
 
#22
  Alt 12. Sep 2010, 15:22
Copy&Paste aus der Code-Library und fertig ist GetMAC (fast).
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG
 
#23
  Alt 12. Sep 2010, 16:27
Was, wenn ich per WLAN im Internet bin und per LAN im lokalen Netzwerk?
Wenn man mit 2 Netzwerkkarten im Netz hängt, sollte man dann nicht auch zwei IPs haben
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze

 
Turbo Delphi für Win32
 
#24
  Alt 12. Sep 2010, 16:28
Wenn man mit 2 Netzwerkkarten im Netz hängt, sollte man dann nicht auch zwei IPs haben
Jo klar. Sagt auch keiner was anderes.
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG
 
#25
  Alt 12. Sep 2010, 16:49
Ah, jetzt *laut-denk*: Bei der Ermittelung aus der IP sollte man die dazugehörige MAC-Adresse kriegen, also ging es um die Ermittelung aus dem Namen.

Also hängt es wohl davon ab, auf welche IP der Name abgebildet wird.

Oder bin ich völlig am Thema vorbeigeschossen
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze

 
Turbo Delphi für Win32
 
#26
  Alt 12. Sep 2010, 16:53
Also hängt es wohl davon ab, auf welche IP der Name abgebildet wird.

Oder bin ich völlig am Thema vorbeigeschossen
Äh jein.

Einem Namen lassen sich mehrere Netzwerkkarten/IPs zuordnen.

Wenn ich die Funktion aus der CL nutze, zeigt es bei mir 8 - 10 MAC-Adressen an, obwohl ich nur 4 habe.
Das ganze Thema ist mir etwas suspekt, muss ich zugeben.

Es sei denn, das sind virtuelle Netzwerkkarten vom Bundestrojaner, die über "ipconfig /all" versteckt werden.
Ok, das geht zu sehr am Thema vorbei. Lassen wir das.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

 
Delphi 2006 Professional
 
#27
  Alt 12. Sep 2010, 19:34
Copy&Paste aus der Code-Library und fertig ist GetMAC (fast).
Leider wird das WMI benutzt. Aber ich muss ja nur alle an den Rechner vergebenen IP's durchgehen und zu jeder IP-Adresse die MAC-Adresse ermitteln.
Michael
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle
 
#28
  Alt 12. Sep 2010, 20:56
Ihr erhaltet die MAC, welche in der Schnittstellen-Priorität als erstes kommt. Solltet ihr also per WLAN und LAN online sein, dann sollte es die MAC-Adresse des LAN-Ports des Routers geben, da Windows sinnvoller weise die LAN-Verbindung als besser erachtet ( = höher priorisiert).

Wo diese Priorität unter Windows zu finden ist - muss ich gestehen - weiß ich nicht genau. Ich denke mal, es ist die selbe wie die Metrik in der Routing-Tabelle. cmd.exe -> "route SHOW" Man suche sich in der IPv4 Tabelle die passenden Ziele für die gewünschte IP aus und schnappt sich anschließend die passende Schnittstelle aus dem Eintrag mit der niedrigsten Metrik.

Liebe Grüße,
Valle
Valentin Voigt
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

 
Delphi 2006 Professional
 
#29
  Alt 13. Sep 2010, 14:26
Also, wenn ich die IP vorgebe ist es ja klar. Da bekomme ich die MAC zu dem Adapter dessen IP ich angegeben habe. Das Funktioniert auch mit Rechnern im Netzwerk.

Wenn ich den Namen eines Rechners im Netzwerk angebe, kann ich dann alle IPs von allen Adaptern des Rechners bekommen?
Michael
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

 
Delphi 2006 Professional
 
#30
  Alt 13. Sep 2010, 17:18
Ich habe die GUI-Version noch etwas aufgemotzt. Gibt man den Computernamen ein, wird auch die IP ermittelt und umgekehrt.
Michael
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 10:16 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