import java.net.InetAddress; import org.apache.commons.net.telnet.TelnetClient; import org.xvolks.jnative.exceptions.NativeException; /** * 在Java的一些应用中,需要编写代码判断目标服务器的IP或者端口是否处于连通状态(这里的连通之IP能够ping通;ip和端口能够用telnet通)。 * 本示例代码演示下面的内容: * 1、利用commons-net第三方jar,测试指定IP和端口能够访问; * 2、利用jdk1.5+的特性,测试指定IP能否ping通 * @author pengsy */ public class Test { /** * @param args */ public static void main(String[] args) throws NativeException,IllegalAccessException{ //示例一:利用commons-net第三方jar,测试ip和端口的连通性 //说明: //1、TelnetClient的connect方法并没有直接返回一个逻辑值,说明当前ip和port能够连接; //2、测试连通性,注意给定超时时间 //3、能够连接,connect不会抛出异常信息;不能连接,connect方法会抛出异常 boolean isConnect = false; try { TelnetClient client = new TelnetClient(); client.setDefaultTimeout(3000); client.connect("127.0.0.1", 8080); isConnect = true; } catch (Exception e) { e.printStackTrace(); } System.out.println("isConnect:"+isConnect); //示例二:JDK1.5以上测试IP是否能够ping通 //说明: //1、isReachable方法中给定的时间,为超时时间 //2、jdk1.5以下(不包括1.5)不支持方法isReachable try { InetAddress address = InetAddress.getByName("127.0.0.1"); boolean reachable = address.isReachable(5000); System.out.println("Is host reachable? " + reachable); } catch (Exception e) { e.printStackTrace(); } } }