乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Delphi中PING的實現(xiàn)

       fjwolf 2009-03-19
      Delphi中PING的實現(xiàn)
      2008-08-08 20:09

      調(diào)用: Uses Ping;

      procedure TForm1.Button1Click(Sender:TObject);
      var
      str:string;
      ping:Tping;
      begin
      ping := Tping.create; //一定要初試化哦
      ping.pinghost('192.168.1.152', str);
      memo1.Lines.Add(str);
      if str = 'Can not find host!' then ShowMessage('該主機當(dāng)前不在線!');
      ping.destroy;
      end;

      ====[ping.pas]=====

      unit ping;

      interface

      uses

      Windows, SysUtils, Classes, Controls, Winsock,
      StdCtrls;

      type
      PIPOptionInformation = ^TIPOptionInformation;
      TIPOptionInformation = packed record
          TTL:Byte;
          TOS:Byte;
          Flags:Byte;
          OptionsSize:Byte;
          OptionsData:PChar;
      end;

      PIcmpEchoReply = ^TIcmpEchoReply;
      TIcmpEchoReply = packed record
          Address:DWORD;
          Status:DWORD;
          RTT:DWORD;
          DataSize:Word;
          Reserved:Word;
          Data:Pointer;
          Options:TIPOptionInformation;
      end;

      TIcmpCreateFile = function:THandle; stdcall;
      TIcmpCloseHandle = function(IcmpHandle:THandle):Boolean; stdcall;
      TIcmpSendEcho = function(IcmpHandle:THandle;
          DestinationAddress:DWORD;
          RequestData:Pointer;
          RequestSize:Word;
          RequestOptions:PIPOptionInformation;
          ReplyBuffer:Pointer;
          ReplySize:DWord;
          Timeout:DWord
          ):DWord; stdcall;

      Tping = class(Tobject)

      private
          { Private declarations }
          hICMP:THANDLE;
          IcmpCreateFile:TIcmpCreateFile;
          IcmpCloseHandle:TIcmpCloseHandle;
          IcmpSendEcho:TIcmpSendEcho;
      public
          procedure pinghost(ip:string; var info:string);
          constructor create;
          destructor destroy; override;
          { Public declarations }
      end;

      var
      hICMPdll:HMODULE;

      implementation

      constructor Tping.create;
      begin
      inherited create;
      hICMPdll := LoadLibrary('icmp.dll');
      @ICMPCreateFile := GetProcAddress(hICMPdll, 'IcmpCreateFile');
      @IcmpCloseHandle := GetProcAddress(hICMPdll, 'IcmpCloseHandle');
      @IcmpSendEcho := GetProcAddress(hICMPdll, 'IcmpSendEcho');
      hICMP := IcmpCreateFile;
      end;

      destructor Tping.destroy;
      begin
      FreeLibrary(hIcmpDll);
      inherited destroy;
      end;

      procedure Tping.pinghost(ip:string; var info:string);
      var
      // IP Options for packet to send
      IPOpt:TIPOptionInformation;
      FIPAddress:DWORD;
      pReqData, pRevData:PChar;
      // ICMP Echo reply buffer
      pIPE:PIcmpEchoReply;
      FSize:DWORD;
      MyString:string;
      FTimeOut:DWORD;
      BufferSize:DWORD;
      begin

      if ip <> '' then
      begin
          FIPAddress := inet_addr(PChar(ip));
          FSize := 40;
          BufferSize := SizeOf(TICMPEchoReply) + FSize;
          GetMem(pRevData, FSize);
          GetMem(pIPE, BufferSize);
          FillChar(pIPE^, SizeOf(pIPE^), 0);
          pIPE^.Data := pRevData;
          MyString := 'Test Net - Sos Admin';
          pReqData := PChar(MyString);
          FillChar(IPOpt, Sizeof(IPOpt), 0);
          IPOpt.TTL := 64;
          FTimeOut := 100;
          try
            IcmpSendEcho(hICMP, FIPAddress, pReqData, Length(MyString), @IPOpt, pIPE,
              BufferSize, FTimeOut);
            if pReqData^ = pIPE^.Options.OptionsData^ then
              info := ip + ' ' + IntToStr(pIPE^.DataSize) + '   ' +
                IntToStr(pIPE^.RTT);
          except
            info := 'Can not find host!';
            FreeMem(pRevData);
            FreeMem(pIPE);
            Exit;
          end;
          FreeMem(pRevData);
          FreeMem(pIPE);
      end;
      end;

      end.


        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多