Delphi通過ICMP檢測與遠程主機連接

{ ping IP 地址(返回false or true) 2015-03-23}
function PingHost(HostIP: String): Boolean;
typePIPOptionInformation =  ^TIPOptionInformation;TIPOptionInformation = packed recordTTL:Byte;TOS:Byte;Flags:Byte;OptionsSize:Byte;OptionsData:PChar;end;PIcmpEchoReply= ^TIcmpEchoReply;TIcmpEchoReply = packed recordAddress: 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;
varhICMP:THandle;hICMPdll:THandle;IcmpCreateFile:TIcmpCreateFile;IcmpCloseHandle:TIcmpCloseHandle;IcmpSendEcho:TIcmpSendEcho;pIPE:PIcmpEchoReply;//   ICMP   Echo   reply   bufferFIPAddress:DWORD;FSize:DWORD;FTimeOut:DWORD;BufferSize:DWORD;pReqData,pRevData:PChar;MyString:string;
begin   Result:=False;hICMPdll:=LoadLibrary('icmp.dll');if hICMPdll=0 then   exit;@ICMPCreateFile:=GetProcAddress(hICMPdll,'IcmpCreateFile');@IcmpCloseHandle:=GetProcAddress(hICMPdll,'IcmpCloseHandle');@IcmpSendEcho:=GetProcAddress(hICMPdll, 'IcmpSendEcho');hICMP   :=   IcmpCreateFile;if (hICMP=INVALID_HANDLE_VALUE) then  exit;FIPAddress:=inet_addr(PChar(HostIP));MyString := 'Hello,World';                                 //send   data   bufferpReqData:=PChar(MyString);FSize:=40;                                                 //receive   data   bufferBufferSize:=SizeOf(TICMPEchoReply)+FSize;GetMem(pIPE,BufferSize);   FillChar(pIPE^,SizeOf(pIPE^), 0);GetMem(pRevData,FSize);pIPE^.Data:=pRevData;FTimeOut:=500;tryResult:=IcmpSendEcho(hICMP, FIPAddress,pReqData,Length(MyString),nil,pIPE,BufferSize,FTimeOut)>0;finallyIcmpCloseHandle(hICMP);FreeLibrary(hICMPdll);FreeMem(pRevData);FreeMem(pIPE);end;
end;

?

轉載于:https://www.cnblogs.com/tc310/p/4359887.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/257515.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/257515.shtml
英文地址,請注明出處:http://en.pswp.cn/news/257515.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

安裝SQL2012出現[HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD)設置為 1

本人安裝SQL2012出現這個錯誤,找了三天三夜,終于把問題找出來,共享給有需要的人們,不用重新換系統 錯誤如下: 1,此問題是系統.net Framework版本沖突,首先下載.net Framework清理工具(如:cleanu…

Java學習筆記之equals和Objects.equals

equals 相信大家就知道,就是比較,我們平時也會在自己定義的類中加入自己重寫的equals用來比較兩個類是否相同,例如這樣 public class Person {private String name; //姓名private int age; //年齡private String nickName; //昵稱public Per…

java限制發送短信次數_使用java發送短信驗證碼碼,出現流量限制怎么辦?急急急...

注冊登錄后需要企業認證,直接在某度上找一張清晰有紅章的企業營業執照,注意要細心點,要看看有沒有水印。我第一次就沒注意上傳了一張有水印的營業執照,從此這個賬號再也沒有審核通過了,后面只能換個賬號。都是后臺人工審核的,比較嚴格。如果時…

GDKOI2015 Day2

P1 題目描述: 給出一個二分圖,選擇互不相交的邊,使得邊覆蓋的點權和最大。 solution: 簡單DP,用樹狀數組維護最大值。 時間復雜度:$O(n \log n) $ P2 題目描述: 給出N個或黑或白的元素&#xff…

寫在SDOI2016Round1前的To Do List

理性的整理了一下自己的不足。 計算幾何啥都不會,字符串類DP毫無練習,數據結構寫的不熟,數論推不出式子,網絡流建模常建殘; 需要達成的任務: 一、網絡流: 熟練網絡流的板子(之前一…

XMind入門教程

最近在總結一些框架知識的時候,總找不到一款好的軟件來畫流程圖,后來在網上查找這方面的東西,找到了 XMind,發現用來畫思維導圖還挺好的,看起來思路清晰,美觀。那么便將使用的一些經驗分享給大家。 1、什么是思維導圖&…

標簽與表格

bgcolor 頁面背景色 text 文字顏色 topmargain 上頁邊距 leftmargain 左頁邊距 rightmargain 右頁邊距 bottomargain 下頁邊距 background 背景壁紙 &nbsp 空…

java word轉圖片tiff_不怕復制內容 Word轉存TIFF文件這么玩

辛辛苦苦把Word文件敲好,為了不讓別人復制走內容,只能看文稿,有些人就選擇轉存成PDF文件——但是PDF文件依然可以被編輯,還有什么方法能防范呢?其實在Word 2003之前,用戶可以通過Microsoft Office Document…

item-設置可見性

如果我們想要設置menu中item的可見行&#xff0c;有兩種方式&#xff1a; 1.直接在menu的xml代碼中設置 <menu> <item android:id"id/action_hotknot"android:showAsAction"always"android:icon"drawable/action_mode_hotknot"android:…

IDC:聚焦6+6,抓住數字化轉型商機

今天&#xff0c;IDC中國2015年中國ICT市場趨勢論壇巡回系列的第二站在北京舉行。論壇的主題為“加速創新實現數字化轉型”。 這是最壞的時代&#xff1a;經濟增長乏力、實體經濟不振、傳統行業在被顛覆與重構、IT市場總體增長進入個位數區間、IT第二平臺的領導廠商仍在困境中。…

編寫EL函數

1.建立java類的靜態函數 package chapter4;public class ELFun {public static String processStr(String s){s s.replaceAll("<", "&lt");s s.replaceAll(">", "&gt");s s.replaceAll(" ", " "…

2016.3.22(關系型數據庫簡介,管理數據庫和表)

數據庫的集中式控制有什么優點&#xff1f; 1&#xff1a;降低存儲數據的冗余度 2&#xff1a;更高的數據一致性 3&#xff1a;存儲數據的可以共享 4&#xff1a;可以建立數據庫所遵循的標準 5&#xff1a;便于維護數據完整性 6&#xff1a;能夠實現數據的安全性 存儲數據有哪些…

java前端ajax提交數據_Java 前端使用Ajax通過FormData傳遞文件和表單數據到后臺

提交1&#xff0c;當僅僅想上傳文件到后臺function tijiao(){var file $("#image")[0].files[0];//打印file 為對象console.log(file);var formObj new FormData();formObj.set(image, file);$.ajax({url:test/test3,data:formObj,type: POST,dataType:json,proces…

IBM收購以色列應用發現公司EZSource

6月1日晚消息&#xff0c;IBM宣布對以色列公司EZSource進行收購&#xff0c;交易的具體條款沒有被披露。 EZSource成立于2003年&#xff0c;以自有視覺面板產品聞名&#xff0c;該公司的產品能夠幫助開發人員將重要的大型機應用程序現代化。該公司在以色列、英國、美國、瑞士、…

oracle存儲過程+游標處理select數據

create or replace PROCEDURE UPDATE_RECORDCODE iscursor location_data is select * from location where remark in(952701,9527008,952705);--申明游標serviceCode NUMBER:1; BEGINfor l in location_data loop --遍歷游標BEGIN--業務處理UPDATE SERIAL_CODE SET CUR_NUMB…

POJ 3617 Best Cow Line(最佳奶牛隊伍)

POJ 3617 Best Cow Line Time Limit: 1000MS  Memory Limit: 65536K 【Description】 【題目描述】 FJ is about to take his N (1 ≤ N ≤ 2,000) cows to the annual "Farmer of the Year" competition. In this contest every farmer arranges his cows in a …

js blob php_js發送blob數據, php端接收blob數據

服務器環境CentOs7.4 php7print_r($_FILES)blob結構如下Array([blob] > Array([name] > blob[type] > image/jpeg[tmp_name] > /tmp/phpu37qnN[error] > 0[size] > 1175745))很納悶這個結構為什么沒有圖片數據流&#xff0c;只有圖片的信息悶了幾個小時胡…

eclipse環境配置、快捷鍵及基本操作

Eclipse與MyEclipse的區別 Elipse是一種可擴展的開放源代碼的集成開發環境&#xff0c;具有免費、純java語言編寫、免安裝、擴展性強等特點。 MyElipse在Elipse基礎上追加的功能性插件&#xff0c;對插件收費&#xff0c;在WEB開發中提供強大的系統架構平臺。 工作空間的基本配…

php 枚舉類型比較,枚舉的比較-python編程入門系列圖文教程-PHP中文網教程

因為枚舉成員不是有序的&#xff0c;所以它們只支持通過標識(identity) 和相等性 (equality) 進行比較。下面來看看 和 is 的使用&#xff1a;#!/usr/bin/env python3# -*- coding: UTF-8 -*-from enum import Enumclass User(Enum):Twowater 98Liangdianshui 30Tom 12Twow…

我與C++的不解情緣

我是一個老實人&#xff0c;我當時報考C真的全心是為了自己自考的免考&#xff0c;絕不是為了什么二級證&#xff0c;可是&#xff0c;進行到一半的時候&#xff0c;突然獲悉&#xff0c;C自我們這次開始&#xff0c;不作為免考科目了&#xff0c;當時我的心里啊&#xff0c;那…