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

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

?? icmp.~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 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

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区欧美| 久久精品人人爽人人爽| 一区二区三区丝袜| 91久久精品网| 天堂在线亚洲视频| 欧美成人一区二区三区| 国产乱淫av一区二区三区| 国产精品丝袜91| 色婷婷综合久久久| 日韩vs国产vs欧美| 久久精品人人爽人人爽| 色综合天天在线| 亚洲国产精品一区二区www在线| 91精品国产免费| 国产精品一区一区三区| 亚洲欧美偷拍另类a∨色屁股| 欧美专区日韩专区| 免费久久精品视频| 中文字幕中文字幕一区| 欧美高清www午色夜在线视频| 另类小说一区二区三区| 国产精品久久久久一区二区三区| 日本福利一区二区| 久久国产精品99久久久久久老狼| 国产精品污www在线观看| 欧美在线观看18| 激情综合网av| 亚洲美女电影在线| 精品久久人人做人人爽| 色婷婷av一区二区三区gif| 日韩成人一级大片| 亚洲色图丝袜美腿| 精品三级av在线| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 国产精品 日产精品 欧美精品| 欧美国产97人人爽人人喊| 制服丝袜亚洲网站| 91视视频在线观看入口直接观看www | 日韩和欧美一区二区| 欧美极品少妇xxxxⅹ高跟鞋| 欧美欧美欧美欧美| www.日韩精品| 精品一区二区三区在线观看国产| 亚洲视频狠狠干| 国产日韩欧美不卡在线| 欧美一区二区三区色| 日本乱码高清不卡字幕| 高清日韩电视剧大全免费| 另类欧美日韩国产在线| 亚洲成av人片在线观看无码| 中文字幕一区在线观看视频| 精品久久人人做人人爰| 欧美久久久久久蜜桃| 色综合天天综合网天天狠天天 | 风间由美性色一区二区三区| 天堂午夜影视日韩欧美一区二区| 亚洲蜜臀av乱码久久精品| 中文字幕免费不卡| 欧美精品一区二区三区蜜桃视频 | 麻豆免费看一区二区三区| 亚洲国产精品一区二区www | 大胆欧美人体老妇| 国内欧美视频一区二区| 免费精品视频在线| 日韩精品国产精品| 午夜电影网一区| 性做久久久久久久免费看| 亚洲一区二区黄色| 亚洲美女视频在线| 亚洲精品亚洲人成人网 | 欧美午夜精品免费| 91豆麻精品91久久久久久| 91视频观看视频| 日本精品一区二区三区高清| 色综合色综合色综合色综合色综合| 高清国产一区二区三区| 成人精品视频一区二区三区 | 91在线精品一区二区三区| 国产成人丝袜美腿| 成人综合婷婷国产精品久久蜜臀| 国产伦精一区二区三区| 国产高清精品网站| 成人黄色国产精品网站大全在线免费观看 | 国产精品美女一区二区三区| 日本一区二区久久| 成人欧美一区二区三区1314| 最新国产成人在线观看| 亚洲制服丝袜av| 三级成人在线视频| 老司机精品视频导航| 国产在线精品不卡| 国产成人在线观看| 99国产欧美另类久久久精品| 99麻豆久久久国产精品免费| 在线一区二区观看| 91精品国产综合久久精品app | 欧美精品久久久久久久多人混战 | 中文字幕在线播放不卡一区| 亚洲精品ww久久久久久p站| 亚洲国产va精品久久久不卡综合| 性做久久久久久免费观看| 久久成人久久鬼色| 99在线视频精品| 欧美三级视频在线观看| 欧美成人精品高清在线播放| 国产亚洲一区二区三区四区| 亚洲欧美另类小说视频| 日韩福利视频导航| 高清成人在线观看| 欧美日韩和欧美的一区二区| 精品国产一二三| 亚洲欧美日本韩国| 老司机午夜精品| 91视频一区二区| 精品第一国产综合精品aⅴ| 中文字幕一区二区5566日韩| 婷婷开心激情综合| av网站一区二区三区| 在线91免费看| 国产精品三级电影| 蜜臂av日日欢夜夜爽一区| 成人美女在线视频| 日韩一级免费一区| 亚洲视频一区二区在线| 精油按摩中文字幕久久| 在线免费视频一区二区| 久久精品一区八戒影视| 丝袜诱惑亚洲看片| 9人人澡人人爽人人精品| 91麻豆精品国产无毒不卡在线观看 | 国产精品久久久久婷婷二区次| 亚洲一卡二卡三卡四卡五卡| 韩国成人福利片在线播放| 在线视频一区二区免费| 欧美激情中文字幕| 蜜臀av性久久久久av蜜臀妖精| 91丨porny丨首页| 久久久久久久网| 日韩一区精品字幕| 91成人国产精品| 国产精品美女一区二区在线观看| 精品一区二区日韩| 欧美日韩另类一区| 一区二区三区丝袜| av毛片久久久久**hd| 国产色91在线| 久久99热狠狠色一区二区| 欧美亚洲一区二区在线观看| 国产精品视频线看| 国产一区二区不卡老阿姨| 欧美一区二区三区四区在线观看| 亚洲激情在线播放| 99久久婷婷国产综合精品电影| 欧美不卡激情三级在线观看| 五月天亚洲婷婷| 欧美日韩高清在线播放| 亚洲最大成人网4388xx| 91香蕉视频污| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 国产精品一区二区三区四区| 精品美女一区二区| 精品在线观看视频| 精品日韩在线观看| 久久精品国产亚洲高清剧情介绍 | 色婷婷久久久亚洲一区二区三区| 国产精品无圣光一区二区| 成人小视频在线观看| 国产日韩欧美综合一区| 国产成人免费在线观看| 欧美高清在线一区| 99国产精品国产精品久久| 亚洲婷婷国产精品电影人久久| 99久久精品国产毛片| 亚洲欧洲综合另类在线| 色欲综合视频天天天| 亚洲国产成人porn| 欧美一区二区精品| 精品制服美女丁香| 国产欧美一区二区精品婷婷| 成人在线综合网| 亚洲美女偷拍久久| 91麻豆精品国产91久久久更新时间| 免费高清在线一区| 国产日韩影视精品| 一本一道综合狠狠老| 日韩高清欧美激情| wwww国产精品欧美| 不卡的av网站| 亚洲成a人片综合在线| 精品国产伦一区二区三区观看方式 | 日韩毛片一二三区| 日本道色综合久久| 丝袜亚洲精品中文字幕一区| 亚洲精品在线观| 97se狠狠狠综合亚洲狠狠| 亚洲线精品一区二区三区八戒| 欧美一区二区三区在| 成人免费av网站| 亚洲成人免费在线| 国产清纯在线一区二区www|