有人推荐使用java的Runtime.exec()方法来直接调用系统的Ping命令。也有人完成了纯Java实现Ping的程序,使用的是Java的NIO包(native io, 高效IO包)。
我个人认为,没有必要用Java再重新写一个Ping命令,因为没有多大意义。更多的人是关心用Java实现ping在应用程序中来测试一个远程主机是否可用。其实自从Java 1.5,java.net包中就实现了ICMP ping的功能。以下我来介绍:
自java 1.5以后,java.net.InetAddress中一个方法:Java代码public boolean isReachable(int timeout) throws IOException
public boolean isReachable(int timeout) throws IOException 它实现了ICMP ECHO REQUEST。
package seleniumapi;

import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException; public class Demo { public static void main(String[] args) throws Exception, IOException {
// TODO Auto-generated method stub
String host = "192.168.1.181";
int timeOut = 3000; //超时应该在3钞以上
boolean status = InetAddress.getByName(host).isReachable(timeOut);
System.out.println(status);
} }

用Java检测远程主机是否能被连接的更多相关文章

  1. Telnet命令检测远程主机上的端口是否开启

    ping命令不能检测端口,只能检测你和相应IP是否能连通. 本地虚拟机里安装了一个Ubuntu,使用Putty连接22端口操作时提示失败,于是查看对应端口是否开启. Windows下要检测远程主机上的 ...

  2. Java中类的加载、连接和初始化

    Java中类的加载.连接和初始化 类的加载.连接和初始化 先介绍一下JVM和类 JVM和类: 当我们调用Java命令运行某个Java程序时,该命令将会启动一个Java虚拟机进程,不管该Java程序有多 ...

  3. java检测端口号是否配占用

    java检测端口号是否被占用的工具类:       package com.frank.util; import java.io.IOException; import java.net.InetAd ...

  4. 2、Java应用中常见的JDBC连接字符串(SQLite、MySQL、Oracle、Sybase、SQLServer、DB2)

    2.Java应用中常见的JDBC连接字符串 Java应用中连接数据库是不可或缺的,于是便整理一些可能用到的JDBC的jar包及其相匹配的URL,以备日后查阅. 1)SQLite Class.forNa ...

  5. JAVA中通过Jedis操作Redis连接与插入简单库

    一.简述 JAVA中通过Jedis操作Redis连接与插入简单库 二.依赖 <!-- https://mvnrepository.com/artifact/redis.clients/jedis ...

  6. 【JAVA】使用 jedis操作redis——连接、存储数据、切库等

    本篇运用Java调用jedis包(jedis在线文档API ),做简单操作实例. 安装jedis 1. 2.9.0 jar 版本下载: jedis-2.9.0.jar 2. 新建项目,添加该驱动包 连 ...

  7. JAVA类的加载、连接与初始化

    JAVA类的加载.连接与初始化 类的声明周期总共分为5个步骤1.加载2.连接3.初始化4.使用5.卸载 当java程序需要某个类的时候,java虚拟机会确保这个类已经被加载.连接和初始化,而连接这个类 ...

  8. java小工具:通过URL连接爬取资源(图片)

    java语言编写一个简单爬取网站图片工具,实现简单: 通过 java.net.HttpURLConnection 获取一个URL连接 HttpURLConnection 连接成功返回一个java.io ...

  9. 使用java检测网络连接状况

    windows中可以通过在cmd中使用ping命令来检测网络连接状况,如下: 网络连接正常时: 网络未连接时: 在java中可以通过调用ping命令来判断网络是否连接正常: package modul ...

随机推荐

  1. NAVICAT 12.0.24 连接 MYSQL8.0.12 的方法

    1. 自己本机安装破解的 navicat11 结果连接不上, 所以 升级了下 navicat 12.0.24 破解方法在: https://www.jianshu.com/p/42a33b0dda9c ...

  2. python的logging日志模块

    1. 简单的将日志打印到屏幕 import logging logging.debug('This is debug message') logging.info('This is info mess ...

  3. 5Java异常处理

    五.异常 异常概念总结:   练习一:异常的体系    问题:    1. 请描述异常的继承体系    2. 请描述你对错误(Error)的理解    3. 请描述你对异常(Expection的理解) ...

  4. group replication && Galera replication

    不愧是 Oracle 的 MySQL Community Manager,把对手的 Galera Cluster 讲得一无是处. http://lefred.be/content/group-repl ...

  5. MT【101】分配问题举例若干

    先拿MT[100]的图表镇楼. 举几个例子: [1]52张纸牌分发给4人,每人13张,问每人手中有一张小2的概率? 分析:第一步每人分一张小2,有4!种,然后48张牌平均分成4组有$\frac{48! ...

  6. 基于Docker持续交付平台建设的实践

    导读:中国五矿和阿里巴巴联手打造的钢铁服务专业平台五阿哥,通过集结阿里巴巴在大数据.电商平台和互联网产品技术上的优势,为终端用户带来一站式采购体验.本文是五阿哥运维技术团队针对Docker容器技术在如 ...

  7. suoi44 核能显示屏 (cdq分治)

    首先二维树状数组肯定开不下 仿照二维树状数组的做法,如果有差分数组$d[i][j]=a[i][j]-a[i-1][j]-a[i][j-1]+a[i-1][j-1]$,那么就有: $$sum[x][y] ...

  8. 转载:C++中两个类中互相包含对方对象的指针问题

    原文链接:http://www.cnblogs.com/hanxi/archive/2012/07/25/2608068.html 前几天很不爽,因为C++中两个类中互相包含对方对象的指针编译时提示某 ...

  9. Eclipse Neon 汉化

    官网下载的Eclipse是英文版的,对于初学者来说为了减小学习的难度,将英文版汉化是有必要的. 第一步:依次点击Eclipse菜单栏上的“Help"-->”About",查看 ...

  10. python创建与遍历List二维列表

    python创建与遍历List二维列表 觉得有用的话,欢迎一起讨论相互学习~Follow Me python 创建List二维列表 lists = [[] for i in range(3)] # 创 ...