VB 判断IP能否ping通
窗体代码:
'测试
Private Sub Form_Load()
If PingIP("122.22.255.255") Then
MsgBox "可以ping通"
Else
MsgBox "ping 不通"
End If
End Sub
模块代码:
Option Explicit
Private Const IP_SUCCESS As Long = 0
Private Const IP_STATUS_BASE As Long = 11000
Private Const IP_BUF_TOO_SMALL As Long = (11000 + 1)
Private Const IP_DEST_NET_UNREACHABLE As Long = (11000 + 2)
Private Const IP_DEST_HOST_UNREACHABLE As Long = (11000 + 3)
Private Const IP_DEST_PROT_UNREACHABLE As Long = (11000 + 4)
Private Const IP_DEST_PORT_UNREACHABLE As Long = (11000 + 5)
Private Const IP_NO_RESOURCES As Long = (11000 + 6)
Private Const IP_BAD_OPTION As Long = (11000 + 7)
Private Const IP_HW_ERROR As Long = (11000 + 8)
Private Const IP_PACKET_TOO_BIG As Long = (11000 + 9)
Private Const IP_REQ_TIMED_OUT As Long = (11000 + 10)
Private Const IP_BAD_REQ As Long = (11000 + 11)
Private Const IP_BAD_ROUTE As Long = (11000 + 12)
Private Const IP_TTL_EXPIRED_TRANSIT As Long = (11000 + 13)
Private Const IP_TTL_EXPIRED_REASSEM As Long = (11000 + 14)
Private Const IP_PARAM_PROBLEM As Long = (11000 + 15)
Private Const IP_SOURCE_QUENCH As Long = (11000 + 16)
Private Const IP_OPTION_TOO_BIG As Long = (11000 + 17)
Private Const IP_BAD_DESTINATION As Long = (11000 + 18)
Private Const IP_ADDR_DELETED As Long = (11000 + 19)
Private Const IP_SPEC_MTU_CHANGE As Long = (11000 + 20)
Private Const IP_MTU_CHANGE As Long = (11000 + 21)
Private Const IP_UNLOAD As Long = (11000 + 22)
Private Const IP_ADDR_ADDED As Long = (11000 + 23)
Private Const IP_GENERAL_FAILURE As Long = (11000 + 50)
Private Const MAX_IP_STATUS As Long = (11000 + 50)
Private Const IP_PENDING As Long = (11000 + 255)
Private Const PING_TIMEOUT As Long = 500
Private Const WS_VERSION_REQD As Long = &H101
Private Const MIN_SOCKETS_REQD As Long = 1
Private Const SOCKET_ERROR As Long = -1
Private Const INADDR_NONE As Long = &HFFFFFFFF
Private Const MAX_WSADescription As Long = 256
Private Const MAX_WSASYSStatus As Long = 128
Public PingTime As Long
Private Type ICMP_OPTIONS
Ttl As Byte
Tos As Byte
Flags As Byte
OptionsSize As Byte
OptionsData As Long
End Type
Private Type ICMP_ECHO_REPLY
Address As Long
status As Long
RoundTripTime As Long
DataSize As Long
DataPointer As Long
Options As ICMP_OPTIONS
Data As String * 250
End Type
Private Type WSADATA
wVersion As Integer
wHighVersion As Integer
szDescription(0 To MAX_WSADescription) As Byte
szSystemStatus(0 To MAX_WSASYSStatus) As Byte
wMaxSockets As Long
wMaxUDPDG As Long
dwVendorInfo As Long
End Type
Public Declare Function timeGetTime Lib "winmm.dll" () As Long
Private Declare Function WSAStartup Lib "wsock32" (ByVal wVersionRequired As Long, lpWSADATA As WSADATA) As Long
Private Declare Function WSACleanup Lib "wsock32" () As Long
Private Declare Function IcmpCreateFile Lib "icmp.dll" () As Long
Private Declare Function inet_addr Lib "wsock32" (ByVal s As String) As Long
Private Declare Function IcmpCloseHandle Lib "icmp.dll" (ByVal IcmpHandle As Long) As Long
Private Declare Function IcmpSendEcho Lib "icmp.dll" (ByVal IcmpHandle As Long, ByVal DestinationAddress As Long, ByVal RequestData As String, ByVal RequestSize As Long, ByVal RequestOptions As Long, ReplyBuffer As ICMP_ECHO_REPLY, ByVal ReplySize As Long, ByVal Timeout As Long) As Long
Private Function GetStatusCode(status As Long) As String
On Error GoTo ErrLine
Dim Msg As String
GetStatusCode = ""
Select Case status
Case IP_SUCCESS
Msg = "ip success"
Case INADDR_NONE
Msg = "inet_addr: bad IP format"
Case IP_BUF_TOO_SMALL
Msg = "ip buf too_small"
Case IP_DEST_NET_UNREACHABLE
Msg = "ip dest net unreachable"
Case IP_DEST_HOST_UNREACHABLE
Msg = "ip dest host unreachable"
Case IP_DEST_PROT_UNREACHABLE
Msg = "ip dest port unreachable"
Case IP_DEST_PORT_UNREACHABLE
Msg = "ip dest port unreachable"
Case IP_NO_RESOURCES
Msg = "ip no resources"
Case IP_BAD_OPTION
Msg = "ip bad option"
Case IP_HW_ERROR
Msg = "ip hw_error"
Case IP_PACKET_TOO_BIG
Msg = "ip packet too_big"
Case IP_REQ_TIMED_OUT
Msg = "ip req timed out"
Case IP_BAD_REQ
Msg = "ip bad req"
Case IP_BAD_ROUTE
Msg = "ip bad route"
Case IP_TTL_EXPIRED_TRANSIT
Msg = "ip ttl expired transit"
Case IP_TTL_EXPIRED_REASSEM
Msg = "ip ttl expired reassem"
Case IP_PARAM_PROBLEM
Msg = "ip param_problem"
Case IP_SOURCE_QUENCH
Msg = "ip source quench"
Case IP_OPTION_TOO_BIG
Msg = "ip option too_big"
Case IP_BAD_DESTINATION
Msg = "ip bad destination"
Case IP_ADDR_DELETED
Msg = "ip addr deleted"
Case IP_SPEC_MTU_CHANGE
Msg = "ip spec mtu change"
Case IP_MTU_CHANGE
Msg = "ip mtu_change"
Case IP_UNLOAD
Msg = "ip unload"
Case IP_ADDR_ADDED
Msg = "ip addr added"
Case IP_GENERAL_FAILURE
Msg = "ip general failure"
Case IP_PENDING
Msg = "ip pending"
Case PING_TIMEOUT
Msg = "ping timeout"
Case Else
Msg = "unknown msg returned"
End Select
GetStatusCode = Msg
Exit Function
ErrLine:
End Function
Private Function Ping(sAddress As String, sDataToSend As String, ECHO As ICMP_ECHO_REPLY) As Long
On Error GoTo ErrLine
Dim hPort As Long
Dim dwAddress As Long
dwAddress = inet_addr(sAddress)
If dwAddress <> INADDR_NONE Then
hPort = IcmpCreateFile()
If hPort Then
Call IcmpSendEcho(hPort, dwAddress, sDataToSend, Len(sDataToSend), 0, ECHO, Len(ECHO), PING_TIMEOUT)
Ping = ECHO.status
Call IcmpCloseHandle(hPort)
End If
Else
Ping = INADDR_NONE
End If
Exit Function
ErrLine:
Ping = INADDR_NONE
End Function
Public Function PingIP(ByVal szIp As String) As Boolean
On Error GoTo ErrLine
Dim WSAD As WSADATA
Dim ECHO As ICMP_ECHO_REPLY
Dim ret As Long
'Delay 150
PingIP = False
PingTime = Empty
If WSAStartup(WS_VERSION_REQD, WSAD) = IP_SUCCESS Then
ret = Ping(Trim$(szIp), "tanaya", ECHO)
PingTime = ECHO.RoundTripTime
If InStr(1, GetStatusCode(ret), "success") <> 0 Then
WSACleanup
PingIP = True
PingTime = ECHO.RoundTripTime
Exit Function
End If
End If
Exit Function
ErrLine:
End Function
★VB部分相关文章推荐:★
※VB 释放资源文件到指定目录函数
※VB 读取资源文件里面的字符串
※VB中资源文件.res的使用方法详解
※VB6.0中创建和使用文本资源文件
※VB WindowsMediaPlayer 播放
※vb中WindowsMediaPlayer的常用属性和方法
※VB Environ系统环境变量函数大全
※VB 去除文本框粘贴功能
※VB LISTBOX
※VB 删除数组中的重复元素
※VB数组快速排序算法
※关于三个概念:ActiveX、OLE和COM
※VB 获得磁盘的文件系统
※VB中用API实现文件拖放
※加密算法-MD5算法
※VB中使用MD5算法
※VB 全局热键HOOK (不占系统资源版本)
※VB 小技巧自定义TextBox文本框右键菜单
※VB 写下载者代码
※VB 一行代码的诀窍
※VBS教程-wscript对象
※vb枚举进程
※在VB中如何让线程或进程在指定的CPU上运行
※VB判断指定的WORD文档是否被打开
※VB如何读取快捷方式的目标路径
※VB用API控制输入法状态
※为系统加载右键注册控件选项【VB 注册控件】
※VB如何根据窗口标题获得进程名称
※VB快速查找大型文件中包含的字符串
※VB实现可执行文件运行时自删除
※VB 打开txt,bat,jpg 任意后缀程序
※VB 写文件关联程序
※VB 自启动建立右键菜单
※VB 判断IP能否ping通
※VB FTP操作类(可上传、下载、创建文件夹等等)
※VB部分文件汇总B
※Vb 求素数最经典的方法也是最快的方法
※vb用数组方式快速导出MSFlexGrid表格数据到Excel表格中
※VB中MsFlexGrid控件的使用细则
※点击MSFlexGrid数据控件的标题进行数据排序
※VB 获取鼠标坐标
※VB中NEW的用法(申请内存空间)
※VB CreateObject函数
※VB中的New 与 CreateObject的区别
※VB ListBox 添加不重复的值
※VB 单击ListView控件某列表头进行排序
※VB 简单实现简体与繁体互转
※VB 阿拉伯数字转换为中文大写数值函数
※VB 获取Textbox文本框中的行数函数
更多精彩>>>
VB 判断IP能否ping通相关推荐
- python判断ip能否ping通_Python实现检测服务器是否可以ping通的2种方法
好想在2014结束前再赶出个10篇博文来,~(>_ python检测服务器是否ping通的2种方法 1.第一种比较挫,就是用ping,python调用shell,这个适用于较少的服务器数量,几百 ...
- python判断ip能否ping通_使用Python测试Ping主机IP和某端口是否开放的实例
使用Python方法 比用各种命令方便,可以设置超时时间,到底通不通,端口是否开放一眼能看出来. 命令和返回 完整权限,可以ping通,端口开放,结果如下: 无root权限(省略了ping),端口开放 ...
- python判断ip能否ping通_python 检查IP是否能ping通,并且分别导入两个文件
#!/usr/bin/python #-*- coding:utf-8 -*- ''' 此脚本主要实现网页的点击量,除了实现次功能点外,还有三个知识点: 1.随机获取代理ip,通过代理ip访问指定站点 ...
- C++检测是否ip能够ping通
最近做项目,相机和plc的连接有时候会突然中断,搜寻了下,找到一个可用的检查 某ip是否可以连通的函数.需要调用icmp.dll ping.h icmp.dll下载点这里 #pragma once # ...
- 银河麒麟服务器系统ip可ping通,但是tongweb的默认端口9060、8088不能访问,访问提示404
问题现象:银河麒麟服务器系统ip可ping通,但是tongweb的默认端口9060.8088不能访问,访问tongweb应用端口 http://192.168.0.49:9060/console以及 ...
- win10能够正常访问网站、ip正常ping通,但是ping域名显示”请求找不到主机......“
win10能够正常访问网站.ip正常ping通,但是ping域名显示"请求找不到主机-" 1.问题描述 在使用wireshark分析数据包的时候,想要通过ping命令查看域名的ip ...
- 银河麒麟服务器系统ip可ping通,但是web的默认端口8080不能访问
问题现象:银河麒麟服务器系统ip可ping通,但是端口8080不能访问, 处理思路:问题解决思路:ip能ping通考虑端是否开放,端口是否开放与防火墙的设置有关系,具体步骤如下所示: 检查系统防火墙 ...
- 如何解决IP能ping通但无法上网的问题?
当我们在网络环境中遇到无法上网的问题时,可能会尝试使用ping命令来测试网络连接是否正常.如果ping测试成功,说明我们的IP地址能够和网络中其他设备进行通信,但是无法上网.这种情况下,我们需要采取一 ...
- 物理机与虚拟机IP互ping通,而互ping主机名不通
问题描述: 虚拟机信息: VMware-workstation 10 安装RHEL5.8操作系统.hostname:rhel201.com IP:192.168.1.201 物理机系统:windows ...
最新文章
- Web应用中的缓存一致性问题
- RocketMQ-初体验RocketMQ(03)_RocketMQ多机集群部署
- what does boston dynamics do?
- [译文]C# Heap(ing) Vs Stack(ing) in .NET: Part I
- 好东西仿Vista窗体
- mongodb如何根据字段(数组类型)的长度排序_大数据存储技术选型(七)——MongoDB设计模式及索引优化...
- ArcGIS中,一个点集里的点两两连线,比如有4个点,就连6条线
- vue报错getVueAllUser:67 Uncaught TypeError: Cannot read property 'userId' of undefined
- 漫画:面试过程的神回复
- 洛谷 P5708 【深基2.习2】三角形面积(C)
- C# 快递单批量打印
- 扎克伯格引领的硅谷“裸捐”风
- 面试官:你对MySQL中的索引了解多少?
- 危化品从业人员考试题目及答案
- vue+h5仿微信网页版聊天室vueWebChat项目
- Kafka入门(一)
- 被曝欠薪又放长假,600亿科技巨头爆雷了
- 这所C9高校,再添中科院院士!
- Microservices Ecosystem Transit Map
- 大咖说·图书分享|了不起的JavaScript工程师:从前端到全端高级进阶