如何用Groovy实现IP地址ping检测并输出可达状态?
Groovy实现IP地址Ping检测与可达性提示
当然没问题!Groovy依托Java标准库就能轻松实现这个需求,完全不用额外依赖包。下面是一个贴合你要求的简洁实现:
def checkHostReachability(String ipAddress) { // 输出初始请求提示 println "Sending ping request to $ipAddress" try { // 获取IP对应的网络地址对象,设置3秒超时检测可达性 boolean isReachable = InetAddress.getByName(ipAddress).isReachable(3000) // 根据检测结果输出对应提示 println isReachable ? "Host is reachable" : "Host is not reachable" } catch (UnknownHostException e) { // 处理无效IP地址的情况 println "Invalid IP address: $ipAddress" } catch (IOException e) { // 处理网络异常 println "Error checking reachability: ${e.message}" } } // 测试示例:替换成你需要检测的IP checkHostReachability("192.168.2.20")
关键细节说明:
InetAddress.getByName(ipAddress):根据传入的IP地址生成对应的网络地址实例,这是Java标准库的核心API,Groovy可以直接调用isReachable(3000):检测主机是否可达,参数是超时时间(单位毫秒),你可以根据需求调整这个数值(比如改成5000代表5秒超时)- 异常处理:针对无效IP和网络异常做了基础捕获,避免脚本直接崩溃
- 输出格式完全匹配你要求的样式:可达时输出
Sending ping request to 192.168.2.20 Host is reachable,不可达时输出对应提示
如果需要批量检测多个IP,只需要循环调用checkHostReachability方法即可,比如:
def ipList = ["192.168.2.20", "192.168.2.21", "8.8.8.8"] ipList.each { checkHostReachability(it) }
内容的提问来源于stack exchange,提问作者S.Bengtsson
相关产品推荐
相关产品推荐

