网站建设资讯

NEWS

网站建设资讯

java如何检查服务器连通-创新互联

这篇文章主要介绍了java如何检查服务器连通,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

创新互联致力于互联网品牌建设与网络营销,包括做网站、网站建设、SEO优化、网络推广、整站优化营销策划推广、电子商务、移动互联网营销等。创新互联为不同类型的客户提供良好的互联网应用定制及解决方案,创新互联核心团队10多年专注互联网开发,积累了丰富的网站经验,为广大企业客户提供一站式企业网站建设服务,在网站建设行业内树立了良好口碑。

首先要了解一下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如何检查服务器连通-创新互联
分享链接:http://cdweb.net/article/djechd.html