AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Alle im Netzwerk befindlichen Clients scannen
Thema durchsuchen
Ansicht
Themen-Optionen

Alle im Netzwerk befindlichen Clients scannen

Ein Thema von Gintonik · begonnen am 16. Nov 2012 · letzter Beitrag vom 17. Nov 2012
Antwort Antwort
borstenei

Registriert seit: 11. Nov 2011
121 Beiträge
 
#1

AW: Alle im Netzwerk befindlichen Clients scannen

  Alt 17. Nov 2012, 14:14
Macadresse und Computername mit diesen Funktionen
Delphi-Quellcode:
function GetComputerName(IPAddr: String): string;
 var
   SockAddrIn: TSockAddrIn;
   HostEnt: PHostEnt;
   WSAData: TWSAData;
 begin
   WSAStartup($101, WSAData);
   SockAddrIn.sin_addr.s_addr := inet_addr(PAnsiChar(AnsiString(IPAddr))); // <-- IP-Addr nach AnsiString wandeln
   HostEnt := gethostbyaddr(@SockAddrIn.sin_addr.S_addr, 4, AF_INET);
   if HostEnt <> nil then
     Result := string(StrPas(Hostent^.h_name)) // <- Hostname nach String wandeln
   else
     Result := '';
 end;


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);
   // msdn.microsoft.com/e...aa366358(VS.85).aspx
   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 := 'ERROR_GEN_FAILURE';
     ERROR_INVALID_PARAMETER:
       Result := 'ERROR_INVALID_PARAMETER';
     ERROR_INVALID_USER_BUFFER:
       Result := 'ERROR_INVALID_USER_BUFFER';
     ERROR_BAD_NET_NAME:
       Result := 'ERROR_BAD_NET_NAME';
     ERROR_BUFFER_OVERFLOW:
       Result := 'ERROR_BUFFER_OVERFLOW';
     else
       Result := 'Error: RC='+IntToStr(RC);
   end;
 end;

ich würde gern den alles hier mal anhängen..nur leider gehört mein code nicht in die Rubrik "Da kann man was lernen".
ich hänge die Exe mal an , die Netzwerksache tut es ja auch ohne Receiver.
Angehängte Dateien
Dateityp: txt Ports.txt (8,2 KB, 39x aufgerufen)
Dateityp: 7z VuTools.7z (1,52 MB, 55x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von MuTzE.Y85
MuTzE.Y85

Registriert seit: 11. Apr 2006
152 Beiträge
 
#2

AW: Alle im Netzwerk befindlichen Clients scannen

  Alt 17. Nov 2012, 15:02
Gibts doch gar nicht

Ich habe die gleiche Funktion verwendet und es hat nie geklappt.

Jetzt habe ich endlich den Fehler:
Code:
function GetComputerName(IPAddr: String): string;
 var
   SockAddrIn: TSockAddrIn;
   HostEnt: PHostEnt;
   WSAData: TWSAData;
 begin
   WSAStartup($101, WSAData);
   SockAddrIn.sin_addr.s_addr := inet_addr(PAnsiChar([B]AnsiString[/B](IPAddr))); // <-- IP-Addr nach AnsiString wandeln
   HostEnt := gethostbyaddr(@SockAddrIn.sin_addr.S_addr, 4, AF_INET);
   if HostEnt <> nil then
     Result := string(StrPas(Hostent^.h_name)) // <- Hostname nach String wandeln
   else
     Result := '';
 end;
Das AnsiString hat mir gefehlt. Ich danke dir!
WIe lange dauert bei dir eigentlich das durchpingen? Ich hab die TimeOut-Zeit auf 50 ms und das dauert schon ne weile.

Dein Tool kann ich nicht öffnen. Mir fehlt XML 4.0
LAN-PC: C2Q Q9550 @ 4004 MHz @ 1.232 V @ Mugen 2 | DFI LANParty JR P45-T2RS | G.Skill 4GB DDR2-1000 CL5 | ZOTAC GTX 280 @ GTX 285 @ 1.06 V | WD Caviar Blue 320GB / WD Caviar Black 640GB | BeQuiet DPP P7 450W | Antec Mini P180
  Mit Zitat antworten Zitat
borstenei

Registriert seit: 11. Nov 2011
121 Beiträge
 
#3

AW: Alle im Netzwerk befindlichen Clients scannen

  Alt 17. Nov 2012, 15:07
XML 4.0 musst du nachinstallieren einfach googlen.
Timeout steht bei mir auf 100.
  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 10:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz