亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Delphi > 正文

Delphi編程實現Ping操作

2019-11-18 19:00:45
字體:
來源:轉載
供稿:網友
Delphi編程實現Ping操作
  張泰立

  使用過網絡的用戶都熟悉“Ping”這個指令,它是一個DOS下的可執行文件,一般用它來檢查網絡連接的好壞程度。其基本原理是利用TCP/ip協議包中ICMP協議中的一個功能,即向所指定的計算機發送一個請求,收到請求的計算機返回一個應答,借此來判斷該計算機是否在網上運行或者檢查網絡連接是否穩定可靠。在Ping程序執行過程中,雙方計算機所耗費的資源都很少,因此,它是一個非常實用的工具。

  我們可以通過編程來實現“Ping”操作,對其加以改進,使之具有Windows的界面風格,顯示比DOS更加直觀。

  首先,對編程中需要的動態鏈接庫作一簡要說明:在Windows的System目錄下,你可以找到Icmp.dll文件,該動態鏈接庫提供了ICMP協議的所有功能,我們的編程就建立在對該動態鏈接庫的調用上。

  Icmp.dll文件內的調用函數說明如下:

  1、IcmpCreateFile

  打開一個句柄,通過該句柄你可以發送ICMP的請求回送報文。

  2、IcmpCloseHandle

  關閉你通過IcmpCreateFile函數打開的句柄。

  3、IcmpSendEcho

  通過你打開的句柄發送ICMP請求,在超時或應答報文接收后返回。其參數基本上和它的幀結構一致,可參看下面的程序部分,其具體含意你可以參看有關ICMP協議的書籍。

  初步了解了上述的三個函數后,我們就可以開始編程了。

  首先,我們的程序運行后應該有如圖1所示的基本功能。為此,我們可先在Delphi的窗口中放入右上圖中所示的控件,如按鈕、編輯框和文本顯示框等。

  (G72.JPG)

  例程運行示意圖

  然后,在程序的開始部分(FormCreate)對WinSocket進行初始化,其作用是申明使用的版本信息,同時調入Icmp.dll庫。

  type

   PIPOptionInformation = ^TIPOptionInformation;

   TIPOptionInformation = packed record

   TTL: Byte;

   TOS: Byte;

   Flags: Byte;

   OptionsSize: Byte;

   OptionsData: PChar;

   end;

   PIcmpEchoReply = ^TIcmpEchoReply;

   TIcmpEchoReply = packed record

   Address: DWord;

   Status: DWORD;

   RTT: DWORD;

   DataSize: Word;

   Reserved: Word;

   Data: Pointer;

   Options: TIPOptionInformation;

   end;

   TIcmpCreateFile = function: THandle; stdcall;

   TIcmpCloseHandle = function(IcmpHandle: THandle): Boolean; stdcall;

   TIcmpSendEcho = function(IcmpHandle:THandle;

   DestinationAddress: DWORD;

   RequestData: Pointer;

   RequestSize: Word;

   RequestOptions: PIPOptionInformation;

   ReplyBuffer: Pointer;

   ReplySize: DWord;

   Timeout: DWord

   ): DWord; stdcall;

   TMyPing = class(TForm)

   Panel1: TPanel;

   Label1: TLabel;

   PingEdit: TEdit;

   ExeBtn: TButton;

   Button2: TButton;

   Button3: TButton;

   StatusShow: TMemo;

   PRocedure Button3Click(Sender: TObject);

   procedure FormCreate(Sender: TObject);

   procedure ExeBtnClick(Sender: TObject);

   private

   { Private declarations }

   hICMP: THANDLE;

   IcmpCreateFile : TIcmpCreateFile;

   IcmpCloseHandle: TIcmpCloseHandle;

   IcmpSendEcho: TIcmpSendEcho;

   public

   { Public declarations }

  end;

  procedure TMyPing.FormCreate(Sender: TObject);

  var

   WSAData: TWSAData;

   hICMPdll: HMODULE;

  begin

   WSAStartup($101, WSAData);

   // Load the icmp.dll stuff

   hICMPdll := LoadLibrary('icmp.dll');

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

   @IcmpCloseHandle := GetProcAddress(hICMPdll, 'IcmpCloseHandle');

   @IcmpSendEcho := GetProcAddress(hICMPdll, 'IcmpSendEcho');

   hICMP := IcmpCreateFile;

   StatusShow.Text := ';

   StatusShow.Lines.Add('目的IP地址 字節數 返回時間(毫秒)');

  end;

  接下來,就要進行如下所示的Ping操作的實際編程過程了。

  procedure TMyPing.ExeBtnClick(Sender: TObject);

  var

   IPOpt:TIPOptionInformation;// IP Options for packet to send

   FIPAddress:DWORD;

   pReqData,pRevData:PChar;

   pIPE:PIcmpEchoReply;// ICMP Echo reply buffer

   FSize: DWORD;

   MyString:string;

   FTimeOut:DWORD;

   BufferSize:DWORD;

  begin

   if PingEdit.Text <> ' then

   begin

   FIPAddress := inet_addr(PChar(PingEdit.Text));

   FSize := 40;

   BufferSize := SizeOf(TICMPEchoReply) + FSize;

   GetMem(pRevData,FSize);

   GetMem(pIPE,BufferSize);

   FillChar(pIPE^, SizeOf(pIPE^), 0);

   pIPE^.Data := pRevData;

   MyString := 'Hello,World';

   pReqData := PChar(MyString);

   FillChar(IPOpt, Sizeof(IPOpt), 0);

   IPOpt.TTL := 64;

   FTimeOut := 4000;

   IcmpSendEcho(hICMP, FIPAddress, pReqData, Length(MyString), @IPOpt, pIPE, BufferSize, FTimeOut);

   if pReqData^ = pIPE^.Options.OptionsData^ then

   begin

   StatusShow.Lines.Add(PChar(PingEdit.Text) + ' ' +IntToStr(pIPE^.DataSize) + ' ' +IntToStr(pIPE^.RTT));

   end;

   FreeMem(pRevData);

   FreeMem(pIPE);

   end

  end;

  通過上面的編程,我們就實現了Ping功能的界面操作。實際上,ICMP協議的功能還有很多,都可以通過對Icmp.dll的函數調用來實現。

上一篇:通用Delphi數據庫輸入控件DBPanel的實現

下一篇:用Delphi實現遠程屏幕抓取

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩av在线不卡| 日本久久久久亚洲中字幕| 成人在线观看视频网站| 51视频国产精品一区二区| 日韩a**中文字幕| 91色视频在线导航| 日韩精品小视频| 国产在线精品成人一区二区三区| 国产欧美日韩91| 77777亚洲午夜久久多人| 欧美激情乱人伦一区| 国产91精品网站| 日本午夜精品理论片a级appf发布| 亚洲精品成人久久电影| 91av视频导航| 日韩av网址在线观看| 亚洲午夜女主播在线直播| 视频在线观看99| 国产精品www| 国产精品极品美女在线观看免费| 日韩美女av在线免费观看| 亚洲黄色在线观看| 三级精品视频久久久久| 欧美一级黄色网| 国产在线999| 91精品国产91久久久久久| 成人黄色中文字幕| 亚洲国产高潮在线观看| 国产精品大片wwwwww| 精品日韩美女的视频高清| 亚洲欧美激情四射在线日| 亚洲欧美国产精品专区久久| 欧洲美女免费图片一区| 亚洲综合一区二区不卡| 欧美性黄网官网| 亚洲精品美女久久久久| 欧美另类第一页| 91美女片黄在线观| 国产精品高清免费在线观看| 欧美日韩性视频在线| 在线精品91av| 中文字幕久久久| 亚洲女人被黑人巨大进入| 日韩视频中文字幕| 久久精视频免费在线久久完整在线看| 欧美视频中文字幕在线| 久久久久久久国产| 亚洲精品456在线播放狼人| 亚洲精品一区二区三区婷婷月| 国产在线a不卡| 性欧美xxxx视频在线观看| 欧洲中文字幕国产精品| 一本色道久久88亚洲综合88| 91香蕉嫩草神马影院在线观看| 久久精品成人欧美大片古装| xxx一区二区| 成人信息集中地欧美| 久久精品99无色码中文字幕| 国产91成人在在线播放| 中文字幕在线成人| 欧美麻豆久久久久久中文| 91sao在线观看国产| 欧美激情按摩在线| 成人在线观看视频网站| 91在线观看免费高清完整版在线观看| 欧美在线亚洲一区| 欧美日韩性视频| 久久久av亚洲男天堂| 2018国产精品视频| 日韩免费高清在线观看| 久久精品成人一区二区三区| 亚洲欧美在线一区| 日本人成精品视频在线| 精品久久久香蕉免费精品视频| 中文字幕成人精品久久不卡| 91成人国产在线观看| 色噜噜久久综合伊人一本| 国产日韩欧美一二三区| 久久99久久99精品免观看粉嫩| 久久国产一区二区三区| 国产亚洲精品综合一区91| 精品久久香蕉国产线看观看亚洲| 91色精品视频在线| 国产亚洲视频在线| 一区二区国产精品视频| 日韩电影在线观看中文字幕| 日韩欧美中文第一页| 成人免费视频网址| 久久久久久久网站| 亚洲国产精品中文| 永久555www成人免费| 国产精品久久久久免费a∨大胸| 亚洲精品v欧美精品v日韩精品| 日韩动漫免费观看电视剧高清| 色综合天天狠天天透天天伊人| 九九精品在线播放| 69久久夜色精品国产69| 91精品国产成人| 亚洲丝袜av一区| 日韩成人免费视频| 97精品一区二区三区| 中文字幕无线精品亚洲乱码一区| 久久亚洲精品视频| 亚洲欧美国产日韩中文字幕| 久久免费视频观看| 国产精品久久久久久久久影视| 久久国产天堂福利天堂| 亚洲国产精品久久久久秋霞蜜臀| 亚洲国产日韩一区| 亚洲成av人影院在线观看| 亚洲福利在线观看| 亚洲精品视频播放| 欧美成人网在线| 欧美孕妇毛茸茸xxxx| 日韩专区中文字幕| 久久在线视频在线| 亚洲人成在线电影| 91中文在线观看| 在线播放国产一区中文字幕剧情欧美| 欧美日韩午夜剧场| 韩国精品久久久999| 韩日精品中文字幕| 68精品国产免费久久久久久婷婷| 亚洲一区二区三区视频播放| 国产999精品视频| 日韩欧美国产成人| 热久久视久久精品18亚洲精品| 亚洲精选中文字幕| 日韩欧美一区视频| 成人欧美一区二区三区黑人| 欧美成人一二三| 亚洲成人精品久久| 亚洲香蕉av在线一区二区三区| 国产精品久久久久久搜索| 久久青草福利网站| 亚洲欧美国产日韩中文字幕| 一区二区亚洲欧洲国产日韩| 国产欧美日韩精品在线观看| 亚洲成色999久久网站| 国产精选久久久久久| 中文精品99久久国产香蕉| 51ⅴ精品国产91久久久久久| 国产精品高清在线| 精品国产一区二区三区久久狼5月| 国产精品69久久| 久久久国产精品一区| 欧美日韩亚洲一区二区三区| 在线国产精品播放| 国产69精品久久久久99| 亚洲成人网在线观看| 96pao国产成视频永久免费| 午夜美女久久久久爽久久| 亚洲欧美日韩久久久久久| 日韩av最新在线| 国产精品偷伦免费视频观看的| 欧美日韩在线视频观看| 欧美疯狂做受xxxx高潮| 69**夜色精品国产69乱| 亚洲欧美精品伊人久久| 91久久精品久久国产性色也91| 91精品视频在线看| 国产高清视频一区三区| 91在线中文字幕| 久久久天堂国产精品女人|