java - 如何在 Android 中以编程方式 ping 网站

标签 java android ping

我试图制作一个可以获取网站或 IP 地址的 ping 并在 TextView 中仅显示 ping 号码的应用程序,我使用此代码获取 ping:

public void fExecutarPing(View view){
        Editable host = edtIP.getText();


    try {
        String cmdPing = "ping -c 1 -w 1 "+host;
        Runtime r = Runtime.getRuntime();
        Process p = r.exec(cmdPing);
        BufferedReader in = new BufferedReader( new InputStreamReader(p.getInputStream()));
        String inputLinhe;


        while((inputLinhe = in.readLine())!= null){

            Toast.makeText(this, inputLinhe, Toast.LENGTH_SHORT).show();

        }


    } catch (Exception e) {
        Toast.makeText(this, "Error: "+e.getMessage().toString(), Toast.LENGTH_SHORT).show();

    }

这段代码只是给我多条 toast 消息,就像你在 Windows 命令中 ping 一样,但我怎样才能获得 ping 号码,例如:85

最佳答案

我推荐使用这个库 https://github.com/potterhsu/Pinger

设置 1. 在根build.gradle中:

allprojects {
  repositories {
    ...
    maven { url 'https://jitpack.io' }
  }
}
  • 在目标模块build.gradle中 依赖项{ 编译 'com.github.potterhsu:Pinger:v1.1' }
  • 用途 1、同步直接Ping:

    Pinger pinger = new Pinger();
    pinger.ping("8.8.8.8", 3);
    

    2.异步Ping,直至成功:

    Pinger pinger = new Pinger();
    pinger.setOnPingListener(new Pinger.OnPingListener() {
        @Override
        public void onPingSuccess() { ... }
    
        @Override
        public void onPingFailure() { ... }
    
        @Override
        public void onPingFinish() { ... }
    });
    pinger.pingUntilSucceeded("8.8.8.8", 5000);
    

    3.异步Ping直至失败:

    Pinger pinger = new Pinger();
    pinger.setOnPingListener(new Pinger.OnPingListener() {
        @Override
        public void onPingSuccess() { ... }
    
        @Override
        public void onPingFailure() { ... }
    
        @Override
        public void onPingFinish() { ... }
    });
    pinger.pingUntilFailed("8.8.8.8", 5000);
    

    关于java - 如何在 Android 中以编程方式 ping 网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52571339/

    相关文章:

    java - Hibernate - 通过一次保存映射三个表

    android - 以编程方式从 PC 识别智能手机

    java - 按字母顺序对数据库中的数据进行排序?

    java - 泛型有界类型参数

    java - 以下声明的差异

    java - 添加了 Maven 依赖项,Eclipse 看不到它

    java - Android模拟器在尝试了很多方法来修复它后仍然黑屏

    networking - iPhone/Android响应ARP请求的策略是什么

    r - 在 R 中 Ping 一个网站

    c++ - 从 C++ 中的系统命令检索 ping 时间 (ping x.x.x.x -n)