AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Ping und Daten Verwerten
Thema durchsuchen
Ansicht
Themen-Optionen

Ping und Daten Verwerten

Ein Thema von gasty · begonnen am 3. Aug 2008 · letzter Beitrag vom 5. Aug 2008
Antwort Antwort
gasty

Registriert seit: 14. Nov 2007
Ort: Nidderau
80 Beiträge
 
Delphi 7 Enterprise
 
#1

Re: Ping und Daten Verwerten

  Alt 5. Aug 2008, 14:16
Eigentlich habe ich nur die 10er installiert. Am besten installier ich es nochma neu.
Und geht es eigentlich mit indy schneller als mit dem code den ich habe? wenn nicht kann ichs mir ja eigentlich sparen
Aber 30-40sec für 5 pings find ich viel zu lang, so max. 10sec sollte es dauern.

Ahja btw, hier die funktion vom ping, vlt kann man da irgendwo timeout zeit einstellen oder so?
ich blick da nicht so ganz durch.

Delphi-Quellcode:
function GetRTTAndHopCount(DestIpAddress:DWORD; HopCount :pointer; MaxHops: DWORD;
    RTT : pointer):boolean; stdcall; external 'iphlpapi.dll';

function ping(host:string; var hopCount, RTT:DWORD; var ipAd:string):DWORD;

// by retnyg
// returns 0 is successfully, otherwise errorcode
// overwrites values hopcount, rtt, and ipad
// hopcount: number of hops
// rtt: roundtrip time
// ipAd: numerical ip-value, if used with a hostname
  function GetIPAddress(const HostName: string): string;
  var
    R: Integer;
    WSAData: TWSAData;
    HostEnt: PHostEnt;
    Host: string;
    SockAddr: TSockAddrIn;
  begin
    Result := '';
    R := WSAStartup($0101, WSAData);
    if R = 0 then
      try
        Host := HostName;
        if Host = 'then
        begin
          SetLength(Host, MAX_PATH);
          GetHostName(@Host[1], MAX_PATH);
        end;
        HostEnt := GetHostByName(@Host[1]);
        if HostEnt <> nil then
        begin
          SockAddr.sin_addr.S_addr := Longint(PLongint(HostEnt^.h_addr_list^)^);
          Result := inet_ntoa(SockAddr.sin_addr);
        end;
      finally
        WSACleanup;
      end;
  end;

var ip: DWORD;
begin
  result:=0;
  hopCount:=0;
  RTT:=0;
  ipAd := GetIPAddress(host);
  ip := inet_addr(@ipAd[1]);
  if not GetRTTAndHopCount(ip, @hopCount, 30, @RTT) then result:=GetLastError;
end;
  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 15:54 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