【问题标题】:Ping local IP in Android studio在 Android Studio 中 Ping 本地 IP
【发布时间】:2019-10-03 16:04:12
【问题描述】:

我正在尝试开发一种方法来检查 IP 方向是否可达,我发现了一个类似的问题,但它不起作用 Android Application Ping IP number

private void existePingServidor(){
    InetAddress in;
       try{
            in = InetAddress.getByName("90.0.0.122");

       if (in.isReachable(5000)){
           pingServidor = true;
           Log.v("true","He pasado por aquí");
       }
       else
           pingServidor = false;
       Log.v("false", "No he podido alcanzar la ip");

    }

    catch(Exception  e){
        e.printStackTrace();
    }
}

问题似乎是 InetAddress.getByName("90.0.0.122");返回空

¿你能解释一下在android studio中ping一个IP的正确方法是什么吗?

【问题讨论】:

  • 很高兴知道,Log.v("false", "No he podido alcanzar la ip"); 总是会被调用,因为您在 else 语句中没有正确使用括号。
  • 另外,您能否解释一下为什么要 ping 一个站点以检查它是否可用?您的问题可能会以更简单的方式解决。
  • 嗨,谢谢你的回答,关于日志是真的,但我得到一个 android.os.NetworkOnMainThreadException 导致日志不显示任何内容。关于检查IP的原因是因为如果IP是90.0.0.122那么应用程序必须做其他事情。
  • 在单独的线程中调用函数。 Google上有很多关于NetworkOnMainThreadException的问题。示例:stackoverflow.com/questions/6343166/…

标签: android ping


【解决方案1】:

改用 getByAddress:

    byte [] ip = {90, 0, 0, 122};
    addr = InetAddress.getByAddress(ip);
    addr.isReachable(5000);

【讨论】:

  • 您好,感谢您的回答,但仍然遇到同样的问题,Log.v 没有执行。
猜你喜欢
  • 2016-12-10
  • 1970-01-01
  • 2020-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多