java 网络测试_使用Java测试网络连通性的几种方法

运行结果

--------------START--------------

FAILRE - CAN not connect! Local:127.0.0.1remote:10.8.1.50port22

FAILRE - CAN not connect! Local:9.123.231.40remote:10.8.1.50port22

SUCCESS - connection established! Local:10.0.50.189remote:10.8.1.50port22

Reachable local IP is found, it is10.0.50.189

--------------END--------------

IPv4和IPv6混合网络下编程

当网络环境中存在IPv4和IPv6,即机器既有IPv4地址,又有IPv6地址的时候,我们可以对程序进行一些优化,比如

● 由于IPv4和IPv6地址之间是无法互相访问的,因此仅需要判断IPv4地址之间和IPv6地址之间的可达性。

● 对于IPv4的换回地址可以不做判断,对于IPv6的Linklocal地址也可以跳过测试

● 根据实际的需要,我们可以优先考虑选择使用IPv4或者IPv6,提高判断的效率

程序清单3:判断本地地址和远程地址是否同为IPv4或者IPv6

// 判断是 IPv4 还是 IPv6

if(!((localInetAddr instanceofInet4Address) && (remoteInetAddr instanceofInet4Address)

|| (localInetAddr instanceofInet6Address) && (remoteInetAddr instanceofInet6Address))){

// 本地和远程不是同时是 IPv4 或者 IPv6,跳过这种情况,不作检测

break;

}

程序清单4:跳过本地地址和LinkLocal地址

if( localAddr.isLoopbackAddress() ||

localAddr.isAnyLocalAddress() ||

localAddr.isLinkLocalAddress() ){

// 地址为本地环回地址,跳过

break;

}

总结和展望

本文列举集中典型的场景,介绍了通过Java网络编程接口判断机器之间可达性的几种方式。在实际应用中,可以根据不同的需要选择相应的方法稍加修改即可。对于更加特殊的需求,还可以考虑通过JNI的方法直接调用系统API来实现,能提供更加强大和灵活的功能,这里就不再赘述了。

44/4<1234

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值