java检查服务器的连通两种方法代码分享
首先要了解一下ping的内容。
概述
PING (Packet Internet Groper),因特网包探索器,用于测试网络连接量的程序。Ping发送一个ICMP(Internet Control Messages Protocol)即因特网信报控制协议;回声请求消息给目的地并报告是否收到所希望的ICMPecho (ICMP回声应答)。它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:利用网络上机器IP地址的唯一性,给目标IP地址发送一个数据包,再要求对方返回一个同样大小的数据包来确定两台网络机器是否连接相通,时延是多少。
ping指的是端对端连通,通常用来作为可用性的检查, 但是某些病毒木马会强行大量远程执行ping命令抢占你的网络资源,导致系统变慢,网速变慢。严禁ping入侵作为大多数防火墙的一个基本功能提供给用户进行选择。通常的情况下你如果不用作服务器或者进行网络测试,可以放心的选中它,保护你的电脑。
通常检查服务器连通 使用ping命令,java代码实现如下:
方法一:
JAVA里的PING是在JDK 1.5后用了新的函数isreachable()函数去实现,但是结果通常返回false
原因:此方法用于测试是否可以达到该地址。实现尽最大努力试图到达主机,但防火墙和服务器配置可能阻塞请求,使其在某些特定的端口可以访问时处于不可到达状态。如果可以获得权限,则典型实现将使用 ICMP ECHO REQUEST;否则它将试图在目标主机的端口 7 (Echo) 上建立 TCP 连接。
public static boolean isOnline(String hostname) { try { InetAddress ia; boolean isonline = false; ia = InetAddress.getByName(hostname);// 例如:www.baidu.com isonline = ia.isReachable(1500); //超时时间1.5秒 return isonline; } catch (UnknownHostException e) { // TODO Auto-generated catch block System.out.println("address:" + hostname + " is not unknown"); } catch (IOException e) { // TODO Auto-generated catch block System.out.println("address:" + hostname + " is not reachable"); } return false; }
方法二(推荐):
使用socket 对端口做TELNET操作, 结果比较准确
public static boolean isOnline(String hostname, int port) { Socket server = null; try { server = new Socket(); InetSocketAddress address = new InetSocketAddress(hostname, port);//例如 www.baidu.com 80 server.connect(address, 3000); System.out.println("ok!"); return true; } catch (UnknownHostException e) { System.out.println("wrong!"); e.printStackTrace(); } catch (IOException e) { System.out.println("wrong"); e.printStackTrace(); } return false; }
总结
以上就是本文关于java检查服务器的连通两种方法代码分享的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:
如有不足之处,欢迎留言指出。
您可能感兴趣的文章:
- java中按字节获得字符串长度的两种方法 Java问题通用解决代码
- 关于Java两种同步方法的理解(代码块级同步对象设置)
- Java 线程同步 两种方法 代码
- JAVA实现对服务器的访问的两种方法
- java POI导出excel(带有图片的数据)以及ftp上传图片到另一台服务器的方法参考代码
- @V@ java代码笔记2010-06-12:java控制台输入各类型类实现;以及判断输入字符串里面是否有数字的两种方法:方法1:转换成字符数组;方法2:正则表达式。
- java读取文件内容的三种方法代码片断分享(java文件操作)
- summernote图片上传功能保存到服务器指定文件夹+php代码+java方法
- JAVA实现多线程的两种方法实例分享
- Java代码中获取配置文件(config.properties)中内容的两种方法
- 分享非常有用的Java程序(关键代码)(八)---Java InputStream读取网络响应Response数据的方法!(重要)
- Java基础3——检查数独的解决方案是否正确,两种方法
- [置顶] java面试题:java中的单例设计模式及两种实现方法的代码举例
- 分享非常有用的Java程序(关键代码)(八)---Java InputStream读取网络响应Response数据的方法!(重要)
- java基于jxl.jar包生成Excel文件到指定目录和服务器下载两种模式的使用方法
- android Java 提交数据到服务器的两种方式中四种方法
- 本人在代码中经常使用到两种控件 highchart 和highstock。现在分享一下两种控件互换方法
- summernote图片上传功能保存到服务器指定文件夹+php代码+java方法
- 关于Java两种同步方法的理解(代码块级同步对象设置)
- 每日20行之4~~~两种方法java实现简易计算器 附带复杂计算器代码(优先级顺序)