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

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

?? icmp.pas

?? 包含常用Internet協(xié)議TCP,UDP、HTTP、FTP、Telnet等
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
    FAddrResolved :   Boolean;
    procedure ResolveAddr;
  public
    constructor Create; virtual;
    destructor  Destroy; override;
    function    Ping : Integer;
    procedure   SetAddress(Value : String);
    function    GetErrorString : String;

    property Address       : String         read  FAddress   write SetAddress;
    property Size          : Integer        read  FSize      write FSize;
    property Timeout       : Integer        read  FTimeout   write FTimeout;
    property Reply         : TIcmpEchoReply read  FReply;
    property TTL           : Integer        read  FTTL       write FTTL;
    Property Flags         : Integer        read  FFlags     write FFlags;
    property ErrorCode     : DWORD          read  FLastError;
    property ErrorString   : String         read  GetErrorString;
    property HostName      : String         read  FHostName;
    property HostIP        : String         read  FHostIP;
    property OnDisplay     : TICMPDisplay   read  FOnDisplay write FOnDisplay;
    property OnEchoRequest : TNotifyEvent   read  FOnEchoRequest
                                            write FOnEchoRequest;
    property OnEchoReply   : TICMPReply     read  FOnEchoReply
                                            write FOnEchoReply;
  end;

  TICMPException = class(Exception);

implementation

{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
constructor TICMP.Create;
var
    WSAData: TWSAData;
begin
    hICMP    := INVALID_HANDLE_VALUE;
    FSize    := 56;
    FTTL     := 64;
    FTimeOut := 4000;

    // initialise winsock
    if WSAStartup($101, WSAData) <> 0 then
        raise TICMPException.Create('Error initialising Winsock');

    // register the icmp.dll stuff
    hICMPdll := LoadLibrary(icmpDLL);
    if hICMPdll = 0 then
        raise TICMPException.Create('Unable to register ' + icmpDLL);

    @ICMPCreateFile  := GetProcAddress(hICMPdll, 'IcmpCreateFile');
    @IcmpCloseHandle := GetProcAddress(hICMPdll, 'IcmpCloseHandle');
    @IcmpSendEcho    := GetProcAddress(hICMPdll, 'IcmpSendEcho');

    if (@ICMPCreateFile = Nil) or
       (@IcmpCloseHandle = Nil) or
       (@IcmpSendEcho = Nil) then
          raise TICMPException.Create('Error loading dll functions');

    hICMP := IcmpCreateFile;
    if hICMP = INVALID_HANDLE_VALUE then
        raise TICMPException.Create('Unable to get ping handle');
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
destructor TICMP.Destroy;
begin
    if hICMP <> INVALID_HANDLE_VALUE then
        IcmpCloseHandle(hICMP);
    if hICMPdll <> 0 then
        FreeLibrary(hICMPdll);
    WSACleanup;
    inherited Destroy;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
function MinInteger(X, Y: Integer): Integer;
begin
    if X >= Y then
        Result := Y
    else
        Result := X;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TICMP.ResolveAddr;
var
    Phe : PHostEnt;             // HostEntry buffer for name lookup
begin
    // Convert host address to IP address
    FIPAddress := inet_addr(PChar(FAddress));
    if FIPAddress <> LongInt(INADDR_NONE) then
        // Was a numeric dotted address let it in this format
        FHostName := FAddress
    else begin
        // Not a numeric dotted address, try to resolve by name
        Phe := GetHostByName(PChar(FAddress));
        if Phe = nil then begin
            FLastError := GetLastError;
            if Assigned(FOnDisplay) then
                FOnDisplay(Self, 'Unable to resolve ' + FAddress);
            Exit;
        end;

        FIPAddress := longint(plongint(Phe^.h_addr_list^)^);
        FHostName  := Phe^.h_name;
    end;

    FHostIP       := StrPas(inet_ntoa(TInAddr(FIPAddress)));
    FAddrResolved := TRUE;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TICMP.SetAddress(Value : String);
begin
    // Only change if needed (could take a long time)
    if FAddress = Value then
        Exit;
    FAddress      := Value;
    FAddrResolved := FALSE;
//    ResolveAddr;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
function TICMP.GetErrorString : String;
begin
    case FLastError of
    IP_SUCCESS:               Result := 'No error';
    IP_BUF_TOO_SMALL:         Result := 'Buffer too small';
    IP_DEST_NET_UNREACHABLE:  Result := 'Destination network unreachable';
    IP_DEST_HOST_UNREACHABLE: Result := 'Destination host unreachable';
    IP_DEST_PROT_UNREACHABLE: Result := 'Destination protocol unreachable';
    IP_DEST_PORT_UNREACHABLE: Result := 'Destination port unreachable';
    IP_NO_RESOURCES:          Result := 'No resources';
    IP_BAD_OPTION:            Result := 'Bad option';
    IP_HW_ERROR:              Result := 'Hardware error';
    IP_PACKET_TOO_BIG:        Result := 'Packet too big';
    IP_REQ_TIMED_OUT:         Result := 'Request timed out';
    IP_BAD_REQ:               Result := 'Bad request';
    IP_BAD_ROUTE:             Result := 'Bad route';
    IP_TTL_EXPIRED_TRANSIT:   Result := 'TTL expired in transit';
    IP_TTL_EXPIRED_REASSEM:   Result := 'TTL expired in reassembly';
    IP_PARAM_PROBLEM:         Result := 'Parameter problem';
    IP_SOURCE_QUENCH:         Result := 'Source quench';
    IP_OPTION_TOO_BIG:        Result := 'Option too big';
    IP_BAD_DESTINATION:       Result := 'Bad Destination';
    IP_ADDR_DELETED:          Result := 'Address deleted';
    IP_SPEC_MTU_CHANGE:       Result := 'Spec MTU change';
    IP_MTU_CHANGE:            Result := 'MTU change';
    IP_GENERAL_FAILURE:       Result := 'General failure';
    IP_PENDING:               Result := 'Pending';
    else
        Result := 'ICMP error #' + IntToStr(FLastError);
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
function TICMP.Ping : Integer;
var
  BufferSize:        Integer;
  pReqData, pData:   Pointer;
  pIPE:              PIcmpEchoReply;       // ICMP Echo reply buffer
  IPOpt:             TIPOptionInformation; // IP Options for packet to send
  Msg:               String;
begin
    Result     := 0;
    FLastError := 0;

    if not FAddrResolved then
        ResolveAddr;

    if FIPAddress = LongInt(INADDR_NONE) then begin
        FLastError := IP_BAD_DESTINATION;
        if Assigned(FOnDisplay) then
            FOnDisplay(Self, 'Invalid host address');
        Exit;
    end;

    // Allocate space for data buffer space
    BufferSize := SizeOf(TICMPEchoReply) + FSize;
    GetMem(pReqData, FSize);
    GetMem(pData,    FSize);
    GetMem(pIPE,     BufferSize);

    try
        // Fill data buffer with some data bytes
        FillChar(pReqData^, FSize, $20);
        Msg := 'Pinging from Delphi code written by F. Piette';
        Move(Msg[1], pReqData^, MinInteger(FSize, Length(Msg)));

        pIPE^.Data := pData;
        FillChar(pIPE^, SizeOf(pIPE^), 0);

        if Assigned(FOnEchoRequest) then
            FOnEchoRequest(Self);

        FillChar(IPOpt, SizeOf(IPOpt), 0);
        IPOpt.TTL   := FTTL;
        IPOpt.Flags := FFlags;
        Result      := IcmpSendEcho(hICMP, FIPAddress, pReqData, FSize,
                                    @IPOpt, pIPE, BufferSize, FTimeOut);
        FLastError  := GetLastError;
        FReply      := pIPE^;

        if Assigned(FOnEchoReply) then
            FOnEchoReply(Self, Result);
    finally
        // Free those buffers
        FreeMem(pIPE);
        FreeMem(pData);
        FreeMem(pReqData);
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}

end.

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品乱码一区二三区小蝌蚪| 亚洲国产欧美日韩另类综合| 国产精品综合在线视频| 日韩色在线观看| 伦理电影国产精品| 欧美tk—视频vk| 国产电影精品久久禁18| 国产精品久久久久久久久免费樱桃| 成人在线综合网站| 国产欧美一区二区三区鸳鸯浴| 大尺度一区二区| 亚洲靠逼com| 欧美精品v日韩精品v韩国精品v| 久久精品噜噜噜成人88aⅴ| 2020国产精品自拍| 97精品国产97久久久久久久久久久久| 一区二区三区中文字幕电影| 91精品国产综合久久精品性色| 国精品**一区二区三区在线蜜桃| 国产精品网站在线观看| 欧美性大战久久久久久久蜜臀| 蜜臀av一区二区在线免费观看| 久久久精品2019中文字幕之3| 一本久久综合亚洲鲁鲁五月天| 午夜欧美在线一二页| 久久亚洲精精品中文字幕早川悠里| 成人av资源在线观看| 午夜精品免费在线观看| 久久精品视频在线免费观看 | 精品国产sm最大网站免费看| 成人国产视频在线观看| 日韩和欧美一区二区| 国产婷婷色一区二区三区 | 国产激情精品久久久第一区二区| 最新国产精品久久精品| 欧美一二区视频| 91麻豆精品一区二区三区| 美女视频免费一区| 亚洲欧美另类小说视频| 精品国精品国产| 日本乱人伦aⅴ精品| 国产在线精品一区二区三区不卡| 一区二区三区在线视频免费| 久久蜜桃一区二区| 欧美三级视频在线观看| 波多野洁衣一区| 麻豆久久一区二区| 亚洲一区视频在线观看视频| 国产色婷婷亚洲99精品小说| 精品视频在线免费看| 成人蜜臀av电影| 久久99国产精品免费| 亚洲第一成人在线| 国产精品久久久久影视| 精品sm捆绑视频| 91精品视频网| 欧美日韩一区二区三区在线| 99vv1com这只有精品| 国产精品夜夜嗨| 麻豆精品久久久| 免费成人小视频| 视频在线观看一区| 亚洲国产成人av| 亚洲在线成人精品| 亚洲精品综合在线| 中文字幕一区二区不卡| 中文字幕av资源一区| 26uuu精品一区二区| 日韩免费观看高清完整版| 欧美精选一区二区| 制服视频三区第一页精品| 欧美四级电影网| 欧美久久一区二区| 欧美日韩大陆在线| 欧美一区日韩一区| 91精品在线观看入口| 欧美一区二区三区四区视频 | 欧美sm美女调教| 日韩精品中文字幕在线不卡尤物 | 91国产免费观看| 日本高清免费不卡视频| 欧洲视频一区二区| 欧美日韩精品一区二区在线播放| 精品视频一区二区不卡| 欧美日韩极品在线观看一区| 欧美高清激情brazzers| 欧美高清激情brazzers| 欧美一区二区三区四区在线观看 | 99久久精品国产网站| 国产乱码精品一品二品| 极品少妇xxxx精品少妇偷拍| 精品在线你懂的| 亚洲成av人在线观看| 日韩极品在线观看| 日本不卡的三区四区五区| 亚洲国产精品一区二区www| 尤物av一区二区| 一区二区三区在线观看欧美| 又紧又大又爽精品一区二区| 亚洲自拍偷拍麻豆| 亚洲一区二区三区视频在线 | 欧美电影免费观看高清完整版在线观看 | 亚洲精品中文字幕乱码三区 | 一区二区三区毛片| 亚洲精品国产无天堂网2021| 亚洲精品亚洲人成人网在线播放| 中文字幕一区二区三区四区不卡 | 亚洲日本va午夜在线影院| 国产精品久久久久桃色tv| 亚洲国产三级在线| 五月天激情综合网| 日韩电影免费在线| 激情成人综合网| 国产成人午夜片在线观看高清观看| 国产iv一区二区三区| 国产精品一区二区你懂的| 色综合天天综合网天天看片| 欧美系列日韩一区| 日韩欧美一级在线播放| 精品国产一区二区三区久久久蜜月| 精品国产乱子伦一区| 亚洲国产岛国毛片在线| 亚洲日本电影在线| 日本aⅴ精品一区二区三区| 精品无码三级在线观看视频| 成人黄色小视频在线观看| 色婷婷狠狠综合| 91网上在线视频| 精品成人一区二区| 亚洲欧美日韩国产中文在线| 日韩av在线免费观看不卡| 国产精品一区二区在线观看网站 | 国产黄色91视频| 丁香桃色午夜亚洲一区二区三区| www.亚洲人| 正在播放亚洲一区| 国产精品每日更新| 日韩精品91亚洲二区在线观看 | 丁香婷婷综合网| 欧美日韩另类一区| 欧美电视剧免费观看| 亚洲综合激情另类小说区| 韩国一区二区三区| 在线亚洲一区二区| 精品国产免费人成在线观看| 亚洲视频一二三| 国产一区二区日韩精品| 欧美在线免费视屏| 国产欧美精品一区二区色综合朱莉| 日本亚洲天堂网| 色综合久久六月婷婷中文字幕| 精品国产91洋老外米糕| 亚洲成av人片一区二区三区| 菠萝蜜视频在线观看一区| 日韩欧美123| 亚洲不卡在线观看| 色婷婷综合激情| 久久久av毛片精品| 日本午夜一区二区| 欧美精品tushy高清| 亚洲激情自拍视频| 国产99久久久国产精品潘金网站| 欧美丰满嫩嫩电影| 亚洲美女屁股眼交| 国产剧情一区二区三区| 欧美一区二区视频在线观看2022| 亚洲色图制服诱惑| 大美女一区二区三区| 久久一区二区三区国产精品| 国产一区二区在线视频| 欧美老肥妇做.爰bbww视频| 亚洲久草在线视频| 91网站黄www| 亚洲欧洲日韩一区二区三区| av一区二区三区四区| 欧美激情综合网| 国产伦精品一区二区三区视频青涩 | 99在线精品观看| 国产欧美日韩一区二区三区在线观看| 日韩国产精品大片| 色综合亚洲欧洲| 亚洲一区欧美一区| 色久综合一二码| 亚洲精品自拍动漫在线| 色婷婷国产精品久久包臀| 自拍偷拍欧美精品| 欧美男男青年gay1069videost| 亚洲综合清纯丝袜自拍| 色香蕉成人二区免费| 亚洲色图19p| 在线观看欧美日本| 日本不卡免费在线视频| 日韩视频不卡中文| 久久精品国产成人一区二区三区| 91精品久久久久久久久99蜜臂| 日韩vs国产vs欧美| 国产日产欧美一区| 成人精品国产福利| 一区二区在线观看av| 色美美综合视频|