AGB  ·  Datenschutz  ·  Impressum  







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

Alle im Netzwerk befindlichen Clients scannen

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

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

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
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 15:02 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