⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 05.htm

📁 vb功能实例介绍。详细、很好的实例说明。
💻 HTM
字号:
<p>PING一个IP地址(向它发送一个数据包并等待回应) </p>
<p></p>
<p>本例演示了怎样通过API的调用向一个IP地址发送一个包的数据并等待回音。</p>
<p>新建一个工程,添加一个标准模块,写入以下代码:</p>
<p></p>
<p>Option Explicit</p>
<p></p>
<p>Public Const IP_STATUS_BASE = 11000</p>
<p>Public Const IP_SUCCESS = 0</p>
<p>Public Const IP_BUF_TOO_SMALL = (11000 + 1)</p>
<p>Public Const IP_DEST_NET_UNREACHABLE = (11000 + 2)</p>
<p>Public Const IP_DEST_HOST_UNREACHABLE = (11000 + 3)</p>
<p>Public Const IP_DEST_PROT_UNREACHABLE = (11000 + 4)</p>
<p>Public Const IP_DEST_PORT_UNREACHABLE = (11000 + 5)</p>
<p>Public Const IP_NO_RESOURCES = (11000 + 6)</p>
<p>Public Const IP_BAD_OPTION = (11000 + 7)</p>
<p>Public Const IP_HW_ERROR = (11000 + 8)</p>
<p>Public Const IP_PACKET_TOO_BIG = (11000 + 9)</p>
<p>Public Const IP_REQ_TIMED_OUT = (11000 + 10)</p>
<p>Public Const IP_BAD_REQ = (11000 + 11)</p>
<p>Public Const IP_BAD_ROUTE = (11000 + 12)</p>
<p>Public Const IP_TTL_EXPIRED_TRANSIT = (11000 + 13)</p>
<p>Public Const IP_TTL_EXPIRED_REASSEM = (11000 + 14)</p>
<p>Public Const IP_PARAM_PROBLEM = (11000 + 15)</p>
<p>Public Const IP_SOURCE_QUENCH = (11000 + 16)</p>
<p>Public Const IP_OPTION_TOO_BIG = (11000 + 17)</p>
<p>Public Const IP_BAD_DESTINATION = (11000 + 18)</p>
<p>Public Const IP_ADDR_DELETED = (11000 + 19)</p>
<p>Public Const IP_SPEC_MTU_CHANGE = (11000 + 20)</p>
<p>Public Const IP_MTU_CHANGE = (11000 + 21)</p>
<p>Public Const IP_UNLOAD = (11000 + 22)</p>
<p>Public Const IP_ADDR_ADDED = (11000 + 23)</p>
<p>Public Const IP_GENERAL_FAILURE = (11000 + 50)</p>
<p>Public Const MAX_IP_STATUS = 11000 + 50</p>
<p>Public Const IP_PENDING = (11000 + 255)</p>
<p>Public Const PING_TIMEOUT = 200</p>
<p>Public Const WS_VERSION_REQD = &H101</p>
<p>Public Const WS_VERSION_MAJOR = WS_VERSION_REQD \ &H100 And &HFF&</p>
<p>Public Const WS_VERSION_MINOR = WS_VERSION_REQD And &HFF&</p>
<p>Public Const MIN_SOCKETS_REQD = 1</p>
<p>Public Const SOCKET_ERROR = -1</p>
<p></p>
<p>Public Const MAX_WSADescription = 256</p>
<p>Public Const MAX_WSASYSStatus = 128</p>
<p></p>
<p>Public Type ICMP_OPTIONS</p>
<p>Ttl As Byte</p>
<p>Tos As Byte</p>
<p>Flags As Byte</p>
<p>OptionsSize As Byte</p>
<p>OptionsData As Long</p>
<p>End Type</p>
<p></p>
<p>Dim ICMPOPT As ICMP_OPTIONS</p>
<p></p>
<p>Public Type ICMP_ECHO_REPLY</p>
<p>Address As Long</p>
<p>status As Long</p>
<p>RoundTripTime As Long</p>
<p>DataSize As Integer</p>
<p>Reserved As Integer</p>
<p>DataPointer As Long</p>
<p>Options As ICMP_OPTIONS</p>
<p>Data As String * 250</p>
<p>End Type</p>
<p></p>
<p>Public Type HOSTENT</p>
<p>hName As Long</p>
<p>hAliases As Long</p>
<p>hAddrType As Integer</p>
<p>hLen As Integer</p>
<p>hAddrList As Long</p>
<p>End Type</p>
<p></p>
<p>Public Type WSADATA</p>
<p>wVersion As Integer</p>
<p>wHighVersion As Integer</p>
<p>szDescription(0 To MAX_WSADescription) As Byte</p>
<p>szSystemStatus(0 To MAX_WSASYSStatus) As Byte</p>
<p>wMaxSockets As Integer</p>
<p>wMaxUDPDG As Integer</p>
<p>dwVendorInfo As Long</p>
<p>End Type</p>
<p></p>
<p>Public Declare Function IcmpCreateFile Lib "icmp.dll" () As Long</p>
<p>Public Declare Function IcmpCloseHandle Lib "icmp.dll" (ByVal IcmpHandle As Long) As Long</p>
<p>Public Declare Function IcmpSendEcho Lib "icmp.dll" (ByVal IcmpHandle As Long, ByVal DestinationAddress As Long, ByVal RequestData As String, ByVal RequestSize As Integer, ByVal RequestOptions As Long, ReplyBuffer As ICMP_ECHO_REPLY, ByVal ReplySize As Long, ByVal Timeout As Long) As Long</p>
<p>Public Declare Function WSAGetLastError Lib "WSOCK32.DLL" () As Long</p>
<p>Public Declare Function WSAStartup Lib "WSOCK32.DLL" (ByVal wVersionRequired As Long, lpWSADATA As WSADATA) As Long</p>
<p>Public Declare Function WSACleanup Lib "WSOCK32.DLL" () As Long</p>
<p>Public Declare Function gethostname Lib "WSOCK32.DLL" (ByVal szHost As String, ByVal dwHostLen As Long) As Long</p>
<p>Public Declare Function gethostbyname Lib "WSOCK32.DLL" (ByVal szHost As String) As Long</p>
<p>Public Declare Sub RtlMoveMemory Lib "kernel32" (hpvDest As Any, ByVal hpvSource As Long, ByVal cbCopy As Long)</p>
<p></p>
<p>Public Function GetStatusCode(status As Long) As String</p>
<p></p>
<p>Dim msg As String</p>
<p></p>
<p>Select Case status</p>
<p>Case IP_SUCCESS: msg = "ip success"</p>
<p>Case IP_BUF_TOO_SMALL: msg = "ip buf too_small"</p>
<p>Case IP_DEST_NET_UNREACHABLE: msg = "ip dest net unreachable"</p>
<p>Case IP_DEST_HOST_UNREACHABLE: msg = "ip dest host unreachable"</p>
<p>Case IP_DEST_PROT_UNREACHABLE: msg = "ip dest prot unreachable"</p>
<p>Case IP_DEST_PORT_UNREACHABLE: msg = "ip dest port unreachable"</p>
<p>Case IP_NO_RESOURCES: msg = "ip no resources"</p>
<p>Case IP_BAD_OPTION: msg = "ip bad option"</p>
<p>Case IP_HW_ERROR: msg = "ip hw_error"</p>
<p>Case IP_PACKET_TOO_BIG: msg = "ip packet too_big"</p>
<p>Case IP_REQ_TIMED_OUT: msg = "ip req timed out"</p>
<p>Case IP_BAD_REQ: msg = "ip bad req"</p>
<p>Case IP_BAD_ROUTE: msg = "ip bad route"</p>
<p>Case IP_TTL_EXPIRED_TRANSIT: msg = "ip ttl expired transit"</p>
<p>Case IP_TTL_EXPIRED_REASSEM: msg = "ip ttl expired reassem"</p>
<p>Case IP_PARAM_PROBLEM: msg = "ip param_problem"</p>
<p>Case IP_SOURCE_QUENCH: msg = "ip source quench"</p>
<p>Case IP_OPTION_TOO_BIG: msg = "ip option too_big"</p>
<p>Case IP_BAD_DESTINATION: msg = "ip bad destination"</p>
<p>Case IP_ADDR_DELETED: msg = "ip addr deleted"</p>
<p>Case IP_SPEC_MTU_CHANGE: msg = "ip spec mtu change</p>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -