服务器之家

服务器之家 > 正文

java检查服务器的连通两种方法代码分享

时间:2021-02-07 17:09     来源/作者:dns007

首先要了解一下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 连接。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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操作, 结果比较准确

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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检查服务器的连通两种方法代码分享的全部内容,希望对大家有所帮助。如有不足之处,欢迎留言指出。

原文链接:http://blog.csdn.net/lipei1220/article/details/52315013

标签:

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
Intellij idea2020永久破解,亲测可用!!!
Intellij idea2020永久破解,亲测可用!!! 2020-07-29
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
返回顶部