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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? icmp.pas

?? 包含常用Internet協議TCP,UDP、HTTP、FTP、Telnet等
?? 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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本丶国产丶欧美色综合| 亚洲国产高清在线| 中文字幕免费在线观看视频一区| 一区二区三区不卡视频| 国产精品一级片在线观看| 欧日韩精品视频| 国产精品欧美久久久久无广告| 日韩av二区在线播放| 色综合久久综合| 国产精品网站在线| 国产精品一区在线| 日韩欧美高清在线| 亚洲成人综合视频| 在线免费观看日本一区| 中文字幕一区三区| 国产精品一线二线三线精华| 日韩欧美国产综合一区| 亚洲成a人片在线观看中文| 91丨九色porny丨蝌蚪| 中文字幕乱码日本亚洲一区二区| 美女看a上一区| 欧美一区二区大片| 天堂av在线一区| 欧美性猛交xxxx乱大交退制版| 最新日韩在线视频| 成人免费视频免费观看| 国产亚洲自拍一区| 国产91在线观看| 一色桃子久久精品亚洲| av不卡在线观看| 亚洲精品久久久蜜桃| 一本到高清视频免费精品| 亚洲欧美日韩一区二区| 91亚洲精品久久久蜜桃| 综合电影一区二区三区 | 欧美国产一区二区在线观看| 久久国产精品区| 日韩午夜激情电影| 久久精品99国产精品日本| 日韩精品一区二区三区视频播放| 免费欧美日韩国产三级电影| 日韩欧美亚洲国产另类| 国产一区二区精品久久| 中文字幕高清一区| 一本色道久久综合亚洲aⅴ蜜桃| 一区二区成人在线| 欧美欧美午夜aⅴ在线观看| 日韩电影免费在线| 久久久精品综合| 91在线观看下载| 亚洲成年人网站在线观看| 91麻豆精品91久久久久同性| 精品在线一区二区| 国产精品久久久久7777按摩| 91黄色免费网站| 人人狠狠综合久久亚洲| 亚洲国产高清在线| 欧美丝袜自拍制服另类| 麻豆精品久久精品色综合| 中文欧美字幕免费| 欧美日韩国产经典色站一区二区三区 | 丝袜美腿亚洲一区| 欧美精品一区男女天堂| 91色|porny| 美女网站色91| 亚洲女同一区二区| 日韩女优电影在线观看| 97超碰欧美中文字幕| 奇米888四色在线精品| 亚洲国产成人午夜在线一区| 欧美色综合天天久久综合精品| 麻豆精品国产传媒mv男同| 国产精品高清亚洲| 日韩久久精品一区| 色噜噜狠狠成人中文综合| 国产一区 二区| 亚洲第一搞黄网站| 中文字幕中文字幕一区二区 | 色婷婷久久久亚洲一区二区三区| 奇米色一区二区三区四区| 综合久久国产九一剧情麻豆| 精品欧美黑人一区二区三区| 日本韩国精品在线| 国产精品香蕉一区二区三区| 午夜精品久久久久久久久久久| 国产人成亚洲第一网站在线播放 | 热久久免费视频| 亚洲精品成人精品456| 久久综合99re88久久爱| 欧美日韩国产高清一区二区三区| 99久久免费视频.com| 国产精品综合av一区二区国产馆| 亚洲成av人**亚洲成av**| 中文字幕一区二区不卡| 国产丝袜在线精品| 精品国产伦一区二区三区观看方式| 欧美伊人精品成人久久综合97| www.欧美亚洲| 成人免费福利片| 国产精品影音先锋| 国产精品亚洲一区二区三区妖精| 美女一区二区久久| 免费成人在线播放| 美日韩黄色大片| 日韩成人av影视| 日本va欧美va欧美va精品| 性久久久久久久久久久久| 亚洲综合色视频| 性欧美疯狂xxxxbbbb| 亚洲影院久久精品| 亚洲国产色一区| 亚洲v日本v欧美v久久精品| 亚洲日本乱码在线观看| 亚洲天堂网中文字| 一区二区三区在线观看国产 | 欧美体内she精高潮| 色综合久久99| 欧美日韩一区精品| 欧美一区二区三区四区在线观看| 欧美精三区欧美精三区| 91麻豆精品国产91久久久久久久久 | 日本大香伊一区二区三区| av不卡免费在线观看| 色综合天天综合给合国产| 欧美综合一区二区三区| 欧美图片一区二区三区| 91精品婷婷国产综合久久性色| 欧美一区二区三区的| 久久久久久久久久久99999| 久久久久久久久99精品| 中文字幕在线不卡一区二区三区 | 偷窥国产亚洲免费视频| 免费久久99精品国产| 国产精品一区二区免费不卡| 成人午夜电影久久影院| 91免费小视频| 91精品国产综合久久久蜜臀图片 | 高清不卡一二三区| 色诱亚洲精品久久久久久| 欧美色图在线观看| 久久亚洲精华国产精华液| 中文字幕在线免费不卡| 日韩精品电影在线观看| 国内精品国产成人国产三级粉色| 粉嫩高潮美女一区二区三区| 欧美在线色视频| 亚洲精品一区二区三区蜜桃下载| 国产精品电影一区二区三区| 午夜成人免费视频| 国产福利视频一区二区三区| 97se亚洲国产综合自在线不卡| 欧美片网站yy| 中文字幕一区在线观看| 免费观看在线综合| 91香蕉国产在线观看软件| 欧美一区二区三区在线电影| 国产精品久久久一本精品| 午夜精品久久久| 波波电影院一区二区三区| 欧美日本视频在线| 亚洲欧美综合网| 九九热在线视频观看这里只有精品| 99精品欧美一区二区三区综合在线| 欧美一区二区网站| 一区二区三区中文字幕在线观看| 国产一区二区不卡在线| 欧美性xxxxxx少妇| 国产精品美女一区二区| 蜜桃视频一区二区三区| 欧美午夜理伦三级在线观看| 国产欧美日韩视频一区二区| 日本v片在线高清不卡在线观看| 色综合天天综合在线视频| 国产亚洲欧美激情| 久久精品国产澳门| 欧美精品在线一区二区三区| 亚洲四区在线观看| 成人黄色电影在线 | 亚洲一区二区三区免费视频| 国产高清不卡一区| 欧美本精品男人aⅴ天堂| 天天色天天爱天天射综合| 一本色道久久综合亚洲91| 国产精品乱人伦中文| 国产成人精品免费| 精品福利一区二区三区免费视频| 午夜电影一区二区三区| 在线精品视频小说1| 亚洲欧美偷拍卡通变态| 99久久99精品久久久久久| 国产精品久久久久久久久晋中| 国产精品一区二区你懂的| 26uuu国产一区二区三区| 美脚の诱脚舐め脚责91| 日韩一级片网站| 日本女人一区二区三区| 91精品国产91综合久久蜜臀| 日韩国产精品久久| 日韩欧美国产系列| 国模大尺度一区二区三区|