Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   GetMAC - Ein Programm zum Ermitteln von MAC-Adressen (https://www.delphipraxis.net/115679-getmac-ein-programm-zum-ermitteln-von-mac-adressen.html)

Luckie 16. Jun 2008 10:08


GetMAC - Ein Programm zum Ermitteln von MAC-Adressen
 
Liste der Anhänge anzeigen (Anzahl: 3)
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.

Medium 16. Jun 2008 10:23

Re: GetMAC - Ein Programm zum Ermitteln von MAC-Adressen
 
Hey du Gedankenleser, das ist genau das, was ich im Moment wunderbar einsetzen kann! Danke dir :)

Edit:

Eine Stelle wundert mich grad:
Delphi-Quellcode:
function GetIp(ComputerName: string): string;
.
.
    GetMem(P, 255 + 1);
    H := GetHostByName(PChar(ComputerName));
    FreeMem(P);
.
.
end;
Warum Speicher für P anfordern, nicht benutzen, und dann wieder freigeben?

Luckie 16. Jun 2008 10:32

Re: GetMAC - Ein Programm zum Ermitteln von MAC-Adressen
 
Hmpf, da hatte ich noch alten Code drin. Wird korrigiert in der Mittagspause.

himitsu 16. Jun 2008 10:39

Re: GetMAC - Ein Programm zum Ermitteln von MAC-Adressen
 
bei /n könnte man ja die IP im Ergebnis mit anzeigen (und andersrum vielleicht auch noch)

Luckie 16. Jun 2008 10:43

Re: GetMAC - Ein Programm zum Ermitteln von MAC-Adressen
 
Screenshot schon angeguckt? ;)

Sharky 16. Jun 2008 10:47

Re: GetMAC - Ein Programm zum Ermitteln von MAC-Adressen
 
Hai Michael,

wenn ich eine IP angebe die nicht in meinem Netzwerk liegt (bin mit dem anderen Netz aber via VPN verbunden) bekomme ich die Meldung:
Zitat:

Es ist ein Fehler aufgetreten.
Die IP-Adresse konnte nicht aufgelöst werden.

Luckie 16. Jun 2008 10:51

Re: GetMAC - Ein Programm zum Ermitteln von MAC-Adressen
 
Dann schlägt wohl MSDN-Library durchsuchenSendARP fehl.

himitsu 16. Jun 2008 11:01

Re: GetMAC - Ein Programm zum Ermitteln von MAC-Adressen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Luckie
Screenshot schon angeguckt? ;)

jupp

meinte es so: (also je beide Angaben)



ach ja, da ich grad keine Konsole auf hatte ... bei keiner Angabe von Parametern wäre es bestimmt praktisch, wenn das Programm dann mit 'ner netten Abfragen auf mich warten könnte :stupid:

Luckie 16. Jun 2008 11:18

Re: GetMAC - Ein Programm zum Ermitteln von MAC-Adressen
 
Habe die Fehlerbehandlung etwas aufgebohrt.

@himitsu: Aber das hast du doch eingegeben. Warum also noch mal ausgeben?

himitsu 16. Jun 2008 11:23

Re: GetMAC - Ein Programm zum Ermitteln von MAC-Adressen
 
nur so?

nja, warum sollte man es nicht nochmal anzeigen?


aber ich geb zu ... hab wohl irgendwie am Anfang was falsch gesehn (mir war so, als würde nur das angezeigt, was angegeben war und nicht das Andere ._. )

pertzschc 16. Jun 2008 11:38

Re: GetMAC - Ein Programm zum Ermitteln von MAC-Adressen
 
Zitat:

Zitat von Medium
Hey du Gedankenleser, das ist genau das, was ich im Moment wunderbar einsetzen kann! Danke dir :)

Hallo Luckie,
Ich wollte mir auch gerade einen Apple Computer kaufen, nun muss ich ja nicht mehr in den Apple Store gehen - an der Konsole geht das mit Deinem Programm viel praktischer ;-)
Christoph

RWarnecke 16. Jun 2008 11:41

Re: GetMAC - Ein Programm zum Ermitteln von MAC-Adressen
 
Hallo Michael,

habe gerade Dein Tool getestet. In dem Test sind nur zwei Notebooks an einen Router angeschlossen. Wenn ich den Namen des anderen Rechners angebe, kommt der folgende Fehler :
Zitat:

ERROR_GEN_FAILURE - A device attached to the system is not functioning. The destination IPv4 address could not be reached because it is not on the same subnet or the destination computer is not operating.
Wenn die IP-Adresse angegeben wird, wird die richtige MAC-Adresse ausgegeben, aber nicht der Computername. Beide Rechner haben Windows XP SP2 mit allen aktuellen Updates drauf.

Luckie 16. Jun 2008 11:42

Re: GetMAC - Ein Programm zum Ermitteln von MAC-Adressen
 
Zitat:

Zitat von pertzschc
Zitat:

Zitat von Medium
Hey du Gedankenleser, das ist genau das, was ich im Moment wunderbar einsetzen kann! Danke dir :)

Hallo Luckie,
Ich wollte mir auch gerade einen Apple Computer kaufen, nun muss ich ja nicht mehr in den Apple Store gehen - an der Konsole geht das mit Deinem Programm viel praktischer ;-)
Christoph

Das muss ich jetzt nicht verstehen oder? :gruebel:

pertzschc 16. Jun 2008 11:43

Re: GetMAC - Ein Programm zum Ermitteln von MAC-Adressen
 
Zitat:

Zitat von Luckie
Das muss ich jetzt nicht verstehen oder? :gruebel:

Get (an) iMAC z.B. - im übrigen ein Witz zur Mittagszeit. Dann viel Spass beim Verdauen des Delphitages noch...

Viele Grüße,
Christoph

Luckie 16. Jun 2008 11:47

Re: GetMAC - Ein Programm zum Ermitteln von MAC-Adressen
 
Ähm, ja. OK. ;)

Luckie 12. Sep 2010 00:02

AW: GetMAC - Ein Programm zum Ermitteln von MAC-Adressen
 
Jetzt gib es auch eine Version mit grafischer Benutzeroberfläche. Screenshot und Programm im ersten Beitrag.

Matze 12. Sep 2010 10:51

AW: GetMAC - Ein Programm zum Ermitteln von MAC-Adressen
 
Welche MAC-Adresse wird da denn zurück gegeben?

Valle 12. Sep 2010 11:40

AW: GetMAC - Ein Programm zum Ermitteln von MAC-Adressen
 
Zitat:

Zitat von Matze (Beitrag 1048991)
Welche MAC-Adresse wird da denn zurück gegeben?

Welche soll es denn sein? Die, über die du mit dem Remote-Rechner kommunizierst natürlich. Eine andere Wahl gibt es nicht. (Außer deine Packete werden geroutet, dann ist es die des nächstgelegenen Routers). ;-)

Liebe Grüße,
Valle

Matze 12. Sep 2010 12:17

AW: GetMAC - Ein Programm zum Ermitteln von MAC-Adressen
 
Was, wenn ich per WLAN im Internet bin und per LAN im lokalen Netzwerk?

So natürlich wie du es darstellst ist das für mich nicht (habe den Code nicht angesehen).

mkinzler 12. Sep 2010 12:19

AW: GetMAC - Ein Programm zum Ermitteln von MAC-Adressen
 
Ein Rechner hat keine MAC, sondern eine Netzwerkkarte. Deshalb ist Matze's Frage imho berechtigt

Luckie 12. Sep 2010 13:31

AW: GetMAC - Ein Programm zum Ermitteln von MAC-Adressen
 
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;

Matze 12. Sep 2010 15:22

AW: GetMAC - Ein Programm zum Ermitteln von MAC-Adressen
 
Copy&Paste aus der Code-Library und fertig ist GetMAC (fast). ;)

BUG 12. Sep 2010 16:27

AW: GetMAC - Ein Programm zum Ermitteln von MAC-Adressen
 
Zitat:

Zitat von Matze (Beitrag 1049002)
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 :gruebel:

Matze 12. Sep 2010 16:28

AW: GetMAC - Ein Programm zum Ermitteln von MAC-Adressen
 
Zitat:

Zitat von BUG (Beitrag 1049084)
Wenn man mit 2 Netzwerkkarten im Netz hängt, sollte man dann nicht auch zwei IPs haben :gruebel:

Jo klar. Sagt auch keiner was anderes. ;)

BUG 12. Sep 2010 16:49

AW: GetMAC - Ein Programm zum Ermitteln von MAC-Adressen
 
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 :mrgreen:

Matze 12. Sep 2010 16:53

AW: GetMAC - Ein Programm zum Ermitteln von MAC-Adressen
 
Zitat:

Zitat von BUG (Beitrag 1049098)
Also hängt es wohl davon ab, auf welche IP der Name abgebildet wird.

Oder bin ich völlig am Thema vorbeigeschossen :mrgreen:

Äh jein. :mrgreen:

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. :mrgreen:
Ok, das geht zu sehr am Thema vorbei. Lassen wir das.

Luckie 12. Sep 2010 19:34

AW: GetMAC - Ein Programm zum Ermitteln von MAC-Adressen
 
Zitat:

Zitat von Matze (Beitrag 1049052)
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.

Valle 12. Sep 2010 20:56

AW: GetMAC - Ein Programm zum Ermitteln von MAC-Adressen
 
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

Luckie 13. Sep 2010 14:26

AW: GetMAC - Ein Programm zum Ermitteln von MAC-Adressen
 
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?

Luckie 13. Sep 2010 17:18

AW: GetMAC - Ein Programm zum Ermitteln von MAC-Adressen
 
Ich habe die GUI-Version noch etwas aufgemotzt. Gibt man den Computernamen ein, wird auch die IP ermittelt und umgekehrt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:45 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