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
Benutzerbild von MuTzE.Y85
MuTzE.Y85

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

AW: Alle im Netzwerk befindlichen Clients scannen

  Alt 17. Nov 2012, 09:04
Pingen kannst du damit:

IP's anpingen


Indy würde ich lassen, da brauchste 1. Adminrechte und 2. kackt mir das immer mit dem Fehler #10040 ab.
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
mjustin

Registriert seit: 14. Apr 2008
3.010 Beiträge
 
Delphi 2009 Professional
 
#2

AW: Alle im Netzwerk befindlichen Clients scannen

  Alt 17. Nov 2012, 09:35
Pingen kannst du damit:

IP's anpingen


Indy würde ich lassen, da brauchste 1. Adminrechte und 2. kackt mir das immer mit dem Fehler #10040 ab.
Ping unter WIndows braucht immer Admin-Rechte, nur bei Verwendung der icmp.dll trickst Windows und gibt sich die Rechte selbst. Microsoft weist auch darauf hin, dass icmp.dll in späteren Windows Versionen nicht mehr enthalten ist.

Zum 10040 wird ein sehr einfacher Workaround hier beschrieben:

Delphi Indy Ping Error 10040

MyIdIcmpClient.PacketSize := 24;

p.s. eine Lösung mit der man auch in mehreren Threads pingen kann wird hier beschrieben:

http://stackoverflow.com/questions/1...ltithread-ping
Michael Justin
habarisoft.com

Geändert von mjustin (17. Nov 2012 um 09:39 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von MuTzE.Y85
MuTzE.Y85

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

AW: Alle im Netzwerk befindlichen Clients scannen

  Alt 17. Nov 2012, 09:37
Pingen kannst du damit:

IP's anpingen


Indy würde ich lassen, da brauchste 1. Adminrechte und 2. kackt mir das immer mit dem Fehler #10040 ab.
Ping unter WIndows braucht immer Admin-Rechte, nur bei Verwendung der icmp.dll trickst Windows und gibt sich die Rechte selbst. Microsoft weist auch darauf hin, dass icmp.dll in späteren Windows Versionen nicht mehr enthalten ist.

Zum 10040 wird ein sehr einfacher Workaround hier beschrieben:

Delphi Indy Ping Error 10040

MyIdIcmpClient.PacketSize := 24;
Funktioniert nicht!!!!! Habe mich die halbe Nacht im Netz belesen, nichts brauchbares gefunden.
Ich pinge sogar mit 16 und es klappt nicht.
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
mjustin

Registriert seit: 14. Apr 2008
3.010 Beiträge
 
Delphi 2009 Professional
 
#4

AW: Alle im Netzwerk befindlichen Clients scannen

  Alt 17. Nov 2012, 09:46

Ich pinge sogar mit 16 und es klappt nicht.
Welches Betriebssystem ist es, Windows 8?
Michael Justin
  Mit Zitat antworten Zitat
Benutzerbild von MuTzE.Y85
MuTzE.Y85

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

AW: Alle im Netzwerk befindlichen Clients scannen

  Alt 17. Nov 2012, 10:30
Windows 7 HP 64
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
 
#6

AW: Alle im Netzwerk befindlichen Clients scannen

  Alt 17. Nov 2012, 10:56
Hi pinge mit dieser Funktion:
Delphi-Quellcode:

uses
  Windows, SysUtils, Variants, Classes, Graphics, Controls,
  ExtCtrls, ComCtrls, winsock, StdCtrls, wininet;


function Ping(IP:string; TimeOut:Cardinal):Boolean;
   var hICMP : DWORD;
       pierWork : PICMP_ECHO_REPLY;
       dwSize : DWORD;
       Class1,Class2,Class3,Class4 : String;
       i,j : Byte;
 begin
   Result:=False;
   j:=1;
   for i:=1 to Length(IP) do begin
     if IP[i]<>'.then begin
       case j of
         1: Class1:=Class1+IP[i];
         2: Class2:=Class2+IP[i];
         3: Class3:=Class3+IP[i];
         4: Class4:=Class4+IP[i];
       end;
     end else
       Inc(j);
   end;
   hICMP := IcmpCreateFile;
   if hICMP = INVALID_HANDLE_VALUE then exit;
   try
    dwSize := SizeOf(ICMP_ECHO_REPLY)+8;
     pierWork := AllocMem(dwSize);
     try
       if IcmpSendEcho(hICMP,MAKELONG(MAKEWORD(StrToInt(Class1), StrToInt(Class2)),MAKEWORD(StrToInt(Class3), StrToInt(Class4))),nil,0,nil,pierWork,dwSize,TimeOut) = 0 then
         Result:=False
       else
         Result:=True;
     finally
      FreeMem(pierWork,dwSize);
    end;
  finally
    IcmpCloseHandle(hIcmp);
  end;
end;
ist hier aus dem Forum.
  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