前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >不靠谱的InetAddress.isReachable,解决办法

不靠谱的InetAddress.isReachable,解决办法

作者头像
程裕强
发布2022-05-06 19:54:03
3510
发布2022-05-06 19:54:03
举报

项目需求,判定节点是否可达!

1、InetAddress.isReachable()方法

代码语言:javascript
复制
public static final boolean isNodeReachable(String hostname) {
        try {
            InetAddress address = InetAddress.getByName(hostname);
            if (address.isReachable(3000)) {
                return true;
            } else {
                return false;
            }
        } catch (Exception e) {
            System.out.println(hostname + "网络不可达!");
            e.printStackTrace();
            return false;
        }
    }

之前测试过该方法,没有发现问题。今天发现该方法一直返回false,实际上通过ping命令是可以ping通的。

2、解决办法

曲线救国,只好通过Runtime执行ping命令了

代码语言:javascript
复制
public static final boolean isNodeReachable(String hostname) {
        try {
            return 0==Runtime.getRuntime().exec("ping -c 1 "+hostname).waitFor();
        } catch (InterruptedException | IOException e) {
            e.printStackTrace();
            return false;
        }
    }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-03-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、InetAddress.isReachable()方法
  • 2、解决办法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档