亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? pingicmp.~pas

?? ping控件
?? ~PAS
?? 第 1 頁 / 共 2 頁
字號:
{*_* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Author:       Fran鏾is PIETTE
Description:  This unit encapsulate the ICMP.DLL into an object of type TICMP.
              Using this object, you can easily ping any host on your network.
              Works only in 32 bits mode (no Delphi 1) under NT or 95.
              TICMP is perfect for a console mode program, but if you build a
              GUI program, you could use the TPing object wich is a true VCL
              encapsulating the TICMP object. Then you can use object inspector
              to change properties or event handler. This is much simpler to
              use for a GUI program.
EMail:        http://users.swing.be/francois.piette  francois.piette@swing.be
              http://www.rtfm.be/fpiette             francois.piette@rtfm.be
              francois.piette@pophost.eunet.be
Creation:     January 6, 1997
Version:      1.04
Support:      Use the mailing list twsocket@rtfm.be See website for details.
Legal issues: Copyright (C) 1997-2000 by Fran鏾is PIETTE
              Rue de Grady 24, 4053 Embourg, Belgium. Fax: +32-4-365.74.56
              <francois.piette@pophost.eunet.be>

              This software is provided 'as-is', without any express or
              implied warranty.  In no event will the author be held liable
              for any  damages arising from the use of this software.

              Permission is granted to anyone to use this software for any
              purpose, including commercial applications, and to alter it
              and redistribute it freely, subject to the following
              restrictions:

              1. The origin of this software must not be misrepresented,
                 you must not claim that you wrote the original software.
                 If you use this software in a product, an acknowledgment
                 in the product documentation would be appreciated but is
                 not required.

              2. Altered source versions must be plainly marked as such, and
                 must not be misrepresented as being the original software.

              3. This notice may not be removed or altered from any source
                 distribution.

              4. You must register this software by sending a picture postcard
                 to the author. Use a nice stamp and mention your name, street
                 address, EMail address and any comment you like to say.

Updates:
Dec 13, 1997 V1.01 Added OnEchoRequest and OnEchoReply events and removed the
             corresponding OnDisplay event. This require to modify existing
             programs.
Mar 15, 1998 V1.02 Deplaced address resolution just before use
Sep 24, 1998 V1.93 Changed TIPAddr and others to LongInt to avoid range error
             problems with Delphi 4
Jan 24, 1999 V1.11 Surfaced Flags property to allow fragmentation check
             (Flags = IP_FLAG_DF to enable fragmentation check)


 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
unit pingicmp;

interface

{$IFDEF VER80}
// This source file is *NOT* compatible with Delphi 1 because it uses
// Win 32 features.
{$ENDIF}

uses
  Windows, SysUtils, Classes, WinSock;

const
  IcmpVersion = 102;
  IcmpDLL     = 'icmp.dll';

  // IP status codes returned to transports and user IOCTLs.
  IP_SUCCESS                  = 0;
  IP_STATUS_BASE              = 11000;
  IP_BUF_TOO_SMALL            = (IP_STATUS_BASE + 1);
  IP_DEST_NET_UNREACHABLE     = (IP_STATUS_BASE + 2);
  IP_DEST_HOST_UNREACHABLE    = (IP_STATUS_BASE + 3);
  IP_DEST_PROT_UNREACHABLE    = (IP_STATUS_BASE + 4);
  IP_DEST_PORT_UNREACHABLE    = (IP_STATUS_BASE + 5);
  IP_NO_RESOURCES             = (IP_STATUS_BASE + 6);
  IP_BAD_OPTION               = (IP_STATUS_BASE + 7);
  IP_HW_ERROR                 = (IP_STATUS_BASE + 8);
  IP_PACKET_TOO_BIG           = (IP_STATUS_BASE + 9);
  IP_REQ_TIMED_OUT            = (IP_STATUS_BASE + 10);
  IP_BAD_REQ                  = (IP_STATUS_BASE + 11);
  IP_BAD_ROUTE                = (IP_STATUS_BASE + 12);
  IP_TTL_EXPIRED_TRANSIT      = (IP_STATUS_BASE + 13);
  IP_TTL_EXPIRED_REASSEM      = (IP_STATUS_BASE + 14);
  IP_PARAM_PROBLEM            = (IP_STATUS_BASE + 15);
  IP_SOURCE_QUENCH            = (IP_STATUS_BASE + 16);
  IP_OPTION_TOO_BIG           = (IP_STATUS_BASE + 17);
  IP_BAD_DESTINATION          = (IP_STATUS_BASE + 18);

  // status codes passed up on status indications.
  IP_ADDR_DELETED             = (IP_STATUS_BASE + 19);
  IP_SPEC_MTU_CHANGE          = (IP_STATUS_BASE + 20);
  IP_MTU_CHANGE               = (IP_STATUS_BASE + 21);

  IP_GENERAL_FAILURE          = (IP_STATUS_BASE + 50);

  MAX_IP_STATUS               = IP_GENERAL_FAILURE;

  IP_PENDING                  = (IP_STATUS_BASE + 255);

  // IP header flags
  IP_FLAG_DF                  = $02;         // Don't fragment this packet.

  // IP Option Types
  IP_OPT_EOL                  = $00;         // End of list option
  IP_OPT_NOP                  = $01;         // No operation
  IP_OPT_SECURITY             = $82;         // Security option.
  IP_OPT_LSRR                 = $83;         // Loose source route.
  IP_OPT_SSRR                 = $89;         // Strict source route.
  IP_OPT_RR                   = $07;         // Record route.
  IP_OPT_TS                   = $44;         // Timestamp.
  IP_OPT_SID                  = $88;         // Stream ID (obsolete)
  MAX_OPT_SIZE                = $40;

type
  // IP types
  TIPAddr   = LongInt;   // An IP address.
  TIPMask   = LongInt;   // An IP subnet mask.
  TIPStatus = LongInt;   // Status code returned from IP APIs.

  PIPOptionInformation = ^TIPOptionInformation;
  TIPOptionInformation = packed record
     TTL:         Byte;      // Time To Live (used for traceroute)
     TOS:         Byte;      // Type Of Service (usually 0)
     Flags:       Byte;      // IP header flags (usually 0)
     OptionsSize: Byte;      // Size of options data (usually 0, max 40)
     OptionsData: PChar;     // Options data buffer
  end;

  PIcmpEchoReply = ^TIcmpEchoReply;
  TIcmpEchoReply = packed record
     Address:       TIPAddr;              // Replying address
     Status:        DWord;                // IP status value
     RTT:           DWord;                // Round Trip Time in milliseconds
     DataSize:      Word;                 // Reply data size
     Reserved:      Word;                 // Reserved
     Data:          Pointer;              // Pointer to reply data buffer
     Options:       TIPOptionInformation; // Reply options
  end;

  // IcmpCreateFile:
  //     Opens a handle on which ICMP Echo Requests can be issued.
  // Arguments:
  //     None.
  // Return Value:
  //     An open file handle or INVALID_HANDLE_VALUE. Extended error information
  //     is available by calling GetLastError().
  TIcmpCreateFile  = function: THandle; stdcall;

  // IcmpCloseHandle:
  //     Closes a handle opened by ICMPOpenFile.
  // Arguments:
  //     IcmpHandle  - The handle to close.
  // Return Value:
  //     TRUE if the handle was closed successfully, otherwise FALSE. Extended
  //     error information is available by calling GetLastError().
  TIcmpCloseHandle = function(IcmpHandle: THandle): Boolean; stdcall;

  // IcmpSendEcho:
  //     Sends an ICMP Echo request and returns one or more replies. The
  //     call returns when the timeout has expired or the reply buffer
  //     is filled.
  // Arguments:
  //     IcmpHandle         - An open handle returned by ICMPCreateFile.
  //     DestinationAddress - The destination of the echo request.
  //     RequestData        - A buffer containing the data to send in the
  //                          request.
  //     RequestSize        - The number of bytes in the request data buffer.
  //     RequestOptions     - Pointer to the IP header options for the request.
  //                          May be NULL.
  //     ReplyBuffer        - A buffer to hold any replies to the request.
  //                          On return, the buffer will contain an array of
  //                          ICMP_ECHO_REPLY structures followed by options
  //                          and data. The buffer should be large enough to
  //                          hold at least one ICMP_ECHO_REPLY structure
  //                          and 8 bytes of data - this is the size of
  //                          an ICMP error message.
  //     ReplySize          - The size in bytes of the reply buffer.
  //     Timeout            - The time in milliseconds to wait for replies.
  // Return Value:
  //     Returns the number of replies received and stored in ReplyBuffer. If
  //     the return value is zero, extended error information is available
  //     via GetLastError().
  TIcmpSendEcho    = function(IcmpHandle:          THandle;
                              DestinationAddress:  TIPAddr;
                              RequestData:         Pointer;
                              RequestSize:         Word;
                              RequestOptions:      PIPOptionInformation;
                              ReplyBuffer:         Pointer;
                              ReplySize:           DWord;
                              Timeout:             DWord
                             ): DWord; stdcall;

  // Event handler type declaration for TICMP.OnDisplay event.
  TICMPDisplay = procedure(Sender: TObject; Msg : String) of object;
  TICMPReply   = procedure(Sender: TObject; Error : Integer) of object;

  // The object wich encapsulate the ICMP.DLL
  TICMP = class(TObject)
  private
    hICMPdll :        HModule;                    // Handle for ICMP.DLL
    IcmpCreateFile :  TIcmpCreateFile;
    IcmpCloseHandle : TIcmpCloseHandle;
    IcmpSendEcho :    TIcmpSendEcho;
    hICMP :           THandle;                    // Handle for the ICMP Calls
    FReply :          TIcmpEchoReply;             // ICMP Echo reply buffer
    FAddress :        String;                     // Address given
    FHostName :       String;                     // Dotted IP of host (output)
    FHostIP :         String;                     // Name of host      (Output)
    FIPAddress :      TIPAddr;                    // Address of host to contact
    FSize :           Integer;                    // Packet size (default to 56)
    FTimeOut :        Integer;                    // Timeout (default to 4000mS)
    FTTL :            Integer;                    // Time To Live (for send)
    FFlags :          Integer;                    // Options flags
    FOnDisplay :      TICMPDisplay;               // Event handler to display
    FOnEchoRequest :  TNotifyEvent;
    FOnEchoReply :    TICMPReply;
    FLastError :      DWORD;                      // After sending ICMP packet

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线中文字幕一区二区| 亚洲午夜免费电影| 久久久精品黄色| 国产精品拍天天在线| 亚洲一区在线视频| 国产一区二区三区不卡在线观看| 成人黄色小视频在线观看| 欧美性高清videossexo| 日韩理论片在线| 精品在线播放免费| 欧美色图天堂网| 精品日韩av一区二区| 亚洲午夜羞羞片| 日韩欧美国产wwwww| 亚洲一区精品在线| 欧美一卡二卡在线观看| 亚洲综合另类小说| 91精品国产综合久久久久久久久久| 亚洲精品中文字幕在线观看| 国产99精品在线观看| 日韩欧美一级片| 国产.欧美.日韩| 一区二区三区日韩在线观看| 99久久精品费精品国产一区二区| 久久一夜天堂av一区二区三区| 欧美a级理论片| 欧美老女人第四色| 日日摸夜夜添夜夜添亚洲女人| 91丨国产丨九色丨pron| 国产精品二区一区二区aⅴ污介绍| 国产麻豆精品久久一二三| 亚洲同性gay激情无套| 欧美一区中文字幕| 成人免费毛片高清视频| 国产精品久久久久7777按摩 | 国产精品女主播av| 欧美日高清视频| 亚洲一区二区在线免费观看视频| 精品久久久久一区| 在线免费观看成人短视频| 亚洲午夜久久久久| 亚洲国产精品v| 99久久婷婷国产综合精品| 免费成人在线观看| 亚洲欧美乱综合| 欧美高清视频不卡网| 9人人澡人人爽人人精品| 亚洲欧美偷拍卡通变态| 久久免费视频色| 91精品国产手机| 97aⅴ精品视频一二三区| 国产麻豆精品在线| 奇米影视一区二区三区| 亚洲国产日韩a在线播放性色| 国产精品丝袜一区| 26uuu欧美| 日韩一区二区三区免费看 | 国产成人午夜精品影院观看视频 | 国产精品拍天天在线| 欧美mv和日韩mv国产网站| 欧美日韩国产一级片| 一本在线高清不卡dvd| 亚洲综合图片区| 1000部国产精品成人观看| 色成年激情久久综合| 成人网男人的天堂| 高清shemale亚洲人妖| 国内成人免费视频| 亚洲综合成人网| 亚洲美女淫视频| 亚洲色图制服诱惑| 中文字幕亚洲成人| 中文字幕第一区综合| 国产欧美精品一区aⅴ影院| 欧美亚洲图片小说| 欧美色网一区二区| 欧美男生操女生| 欧美精品丝袜久久久中文字幕| 欧美日韩午夜在线视频| 欧美在线你懂得| 精品视频在线免费| 欧美四级电影网| 欧美丰满少妇xxxxx高潮对白| 欧美精品在线观看播放| 6080国产精品一区二区| 欧美在线视频你懂得| 丁香亚洲综合激情啪啪综合| 中文字幕一区二区三区在线观看 | 亚洲自拍偷拍九九九| 一级精品视频在线观看宜春院 | 亚洲国产一区视频| 午夜电影网亚洲视频| 国产亚洲精品免费| 欧美一区二区三区在| 欧美大度的电影原声| 国产欧美视频一区二区| 《视频一区视频二区| 亚洲第一电影网| 综合婷婷亚洲小说| 亚洲国产成人91porn| 奇米综合一区二区三区精品视频| 精品在线一区二区| 成人av影院在线| 欧美日韩中文国产| 久久久亚洲综合| 亚洲日本中文字幕区| 丝袜美腿亚洲综合| 国产成人综合在线播放| 色诱视频网站一区| 91精品国产综合久久久久久久| 精品久久免费看| 亚洲色欲色欲www| 日本不卡视频一二三区| 粉嫩绯色av一区二区在线观看| 色婷婷综合久久久| 日韩精品一区二区三区视频| 国产精品美女久久久久久久久 | 亚洲丝袜精品丝袜在线| 天堂蜜桃91精品| 成人一级黄色片| 欧美日韩精品是欧美日韩精品| 久久综合资源网| 亚洲一区二区偷拍精品| 国产一区二区三区香蕉| 欧美三级视频在线观看| 久久久不卡网国产精品一区| 一区二区三区日韩在线观看| 国产毛片精品视频| 欧美日韩国产一级| 1024国产精品| 国产乱人伦偷精品视频不卡 | 美洲天堂一区二卡三卡四卡视频| 国产精品入口麻豆原神| 一区二区三区欧美激情| 国产综合久久久久久久久久久久| 在线观看av不卡| 国产色产综合色产在线视频| 三级精品在线观看| 色美美综合视频| 亚洲国产精品成人综合色在线婷婷 | 久久狠狠亚洲综合| 国产在线精品免费av| 欧美日韩视频在线一区二区| 国产精品美女久久久久久久久久久| 蜜臀av性久久久久蜜臀aⅴ流畅| 99久久国产综合精品麻豆| 久久久综合精品| 免费成人av在线| 欧美日韩一区二区三区在线| 亚洲人快播电影网| 成人av网址在线| 欧美激情一区二区三区全黄| 国内精品在线播放| 欧美大胆人体bbbb| 蜜臀av性久久久久蜜臀av麻豆| 欧美日韩黄色一区二区| 亚洲a一区二区| 欧美性xxxxx极品少妇| 一区二区免费看| 色婷婷久久久亚洲一区二区三区| 亚洲国产岛国毛片在线| 国产成人精品网址| 欧美经典一区二区| 丁香婷婷综合色啪| 国产精品久久久久影院| 成人免费三级在线| 综合久久久久久久| 日本久久一区二区| 亚洲国产一区二区三区| 欧美三级乱人伦电影| 性欧美疯狂xxxxbbbb| 欧美精品三级在线观看| 日韩精品乱码av一区二区| 91精品国产一区二区| 久久精品国产精品亚洲红杏| xvideos.蜜桃一区二区| 国产精品自产自拍| 欧美国产日产图区| 99久久精品国产麻豆演员表| 亚洲免费av网站| 欧美三级日韩三级| 美国欧美日韩国产在线播放| 日韩欧美电影一二三| 国产精品 欧美精品| 国产精品对白交换视频| 欧美系列日韩一区| 免费久久精品视频| 国产日韩高清在线| 色婷婷国产精品| 青草国产精品久久久久久| 久久久综合九色合综国产精品| av电影一区二区| 污片在线观看一区二区| 欧美精品一区二区三区久久久| 亚洲电影在线免费观看| 欧美岛国在线观看| gogo大胆日本视频一区| 午夜久久久影院| 久久久亚洲综合| 欧美主播一区二区三区|