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

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

?? icmp.~pas

?? ping控件
?? ~PAS
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
{*_* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

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 Icmp;

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

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩国产在线观看| 日韩一卡二卡三卡| 久久狠狠亚洲综合| 欧美韩国日本不卡| 678五月天丁香亚洲综合网| 国产91精品一区二区麻豆网站| 亚洲一区av在线| 国产欧美精品一区二区三区四区| 欧美日韩精品一区二区天天拍小说| 国产91露脸合集magnet| 免费观看91视频大全| 亚洲综合色网站| 中文字幕av一区二区三区高| 欧美变态tickle挠乳网站| 在线观看欧美日本| 成人性色生活片免费看爆迷你毛片| 色一情一乱一乱一91av| 麻豆精品国产91久久久久久| 亚洲与欧洲av电影| 亚洲日本青草视频在线怡红院 | www.日韩在线| 久久国产精品免费| 三级久久三级久久| 亚洲国产日日夜夜| 亚洲免费观看高清在线观看| 欧美国产亚洲另类动漫| 久久久不卡影院| 亚洲精品一区二区三区99| 91精品国产一区二区三区香蕉| 在线精品视频小说1| 91网站最新地址| av一区二区三区四区| 粉嫩av一区二区三区在线播放| 精品一区二区免费| 九色综合狠狠综合久久| 全部av―极品视觉盛宴亚洲| 午夜成人免费视频| 亚洲国产精品久久久久婷婷884| 亚洲色图另类专区| 中文字幕亚洲电影| 亚洲天堂2014| 一区二区三区在线观看网站| 国产精品成人午夜| 综合在线观看色| 综合激情成人伊人| 亚洲欧美视频在线观看视频| 亚洲精品久久久蜜桃| 亚洲精品久久久蜜桃| 亚洲制服丝袜av| 亚洲成人一区在线| 免费观看在线综合色| 久久精品国产免费| 国产福利一区二区三区视频在线 | 日本欧美在线观看| 免费精品视频最新在线| 极品尤物av久久免费看| 国产精品资源在线| 91小宝寻花一区二区三区| 91浏览器打开| 欧美久久久久中文字幕| 日韩一级精品视频在线观看| 精品免费日韩av| 国产精品伦一区| 亚洲精品美国一| 视频在线观看国产精品| 国产精品系列在线播放| 99综合电影在线视频| 欧美日韩三级一区| 精品国产电影一区二区| 国产精品你懂的| 婷婷综合久久一区二区三区| 国产呦精品一区二区三区网站| 成人av综合在线| 欧美日韩黄视频| 国产调教视频一区| 亚洲永久免费视频| 国产精品综合在线视频| 91黄色激情网站| 精品成人私密视频| 曰韩精品一区二区| 黑人巨大精品欧美一区| 在线观看免费成人| 久久人人爽爽爽人久久久| 色噜噜狠狠色综合欧洲selulu| 欧美日韩一级黄| 日本一区二区免费在线观看视频 | 欧美国产精品中文字幕| 亚洲国产欧美在线| 国产成人精品亚洲777人妖| 色av成人天堂桃色av| 精品免费日韩av| 亚洲尤物在线视频观看| 国产精品99久久久久久久vr| 在线看国产一区二区| 久久久久久久网| 亚洲成人自拍网| 成人精品视频一区二区三区| 欧美日韩国产天堂| 国产精品久久久一本精品| 日韩成人免费电影| 一本一道久久a久久精品| 亚洲精品一区二区三区福利| 一区二区三区在线视频观看58| 精品一区二区三区视频| 欧美日韩国产中文| 亚洲视频免费在线观看| 国产精品性做久久久久久| 51精品久久久久久久蜜臀| 亚洲啪啪综合av一区二区三区| 国精产品一区一区三区mba桃花 | 国产一区二区三区视频在线播放| 色婷婷久久久久swag精品| 国产亚洲va综合人人澡精品 | 国产日本亚洲高清| 麻豆精品国产91久久久久久| 精品视频一区二区三区免费| 国产精品第五页| 成人av小说网| 久久久精品免费免费| 强制捆绑调教一区二区| 欧美亚洲综合久久| 亚洲男人的天堂av| 91美女在线观看| 亚洲欧洲精品天堂一级| 国产成人精品影视| 久久亚洲一区二区三区明星换脸| 日本成人在线电影网| 欧美特级限制片免费在线观看| 亚洲天堂福利av| 91小视频在线观看| 亚洲欧美视频在线观看视频| a美女胸又www黄视频久久| 国产欧美一区在线| 国产宾馆实践打屁股91| 日本一区二区三区久久久久久久久不 | 欧美在线不卡一区| 亚洲精品少妇30p| 91成人免费网站| 亚洲国产精品一区二区久久| 欧美视频一区二区在线观看| 亚洲午夜一区二区| 欧美久久久久久蜜桃| 青青草国产成人99久久| 日韩免费看的电影| 国产麻豆精品在线观看| 国产亚洲一二三区| 成人精品gif动图一区| 中文字幕中文字幕中文字幕亚洲无线| 国产精品中文字幕日韩精品| 亚洲国产高清不卡| 99久久精品情趣| 亚洲一区精品在线| 欧美精品一二三| 久久99国产精品久久99 | 国产精品区一区二区三区| 成人性视频免费网站| 自拍av一区二区三区| 欧美中文字幕一二三区视频| 日韩专区中文字幕一区二区| 日韩视频中午一区| 福利91精品一区二区三区| 亚洲欧洲日韩女同| 欧美日韩一区在线| 久久er精品视频| 国产精品美女一区二区| 在线视频中文字幕一区二区| 日本在线不卡一区| 国产欧美精品一区二区色综合 | 国产精品白丝在线| 欧美在线999| 精品影院一区二区久久久| 久久精品视频在线看| 91免费国产视频网站| 日本欧美一区二区三区| 国产午夜亚洲精品羞羞网站| 在线观看91视频| 久久99精品久久久久久| 一区在线中文字幕| 91精品国产手机| 99久久久久久99| 蜜桃av一区二区| 最新热久久免费视频| 日韩一级二级三级精品视频| 成人性色生活片免费看爆迷你毛片| 一区二区三区四区国产精品| 精品国产人成亚洲区| 99精品在线观看视频| 热久久国产精品| 国产精品你懂的| 91精品国产高清一区二区三区蜜臀 | 亚洲午夜久久久久久久久电影院 | 亚洲图片欧美综合| 国产日本欧美一区二区| 欧美一区二区在线免费播放| av不卡一区二区三区| 精彩视频一区二区三区| 亚洲成人777| 亚洲乱码中文字幕| 欧美国产日本韩| 久久天天做天天爱综合色|