IP anpingen. Code Snipsel aber wie ausführen.

  • Antworten:27
  • OffenNicht stickyNicht beantwortet
  • Forum-Beiträge: 33

03.10.2016 19:47:25 via Website

Sry Okay ich habs jetzt geändert ich bekomme ein schon mal ein false zurück. Der Server aber ist online.

mExitValue 2
Ping result: false

Skipped 601 frames! The application may be doing too much work on its main thread.

— geändert am 03.10.2016 19:49:05

Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 9.297

03.10.2016 20:57:56 via App

Ja skipped frames sind erstmal egal.
Wahrscheinlich hast du immernoch im comand vor dem Plus im string kein Leerzeichen. Daran liegt es

LG Pascal //It's not a bug, it's a feature. :) ;)

  • Forum-Beiträge: 33

04.10.2016 18:26:38 via Website

Ist geändert.

Process mIpAddrProcess = runtime.exec("/system/bin/ping -c 1" + ip);

Wenn ich den wert if (mExitValue == 2) ändere sagt er Ping result: true
Bei ==0 Ping result false!!!

Ausgabe bei if (mExitValue == 0) {

I/System.out: executeCammand
I/System.out: mExitValue 2
D/isPingable: Ping result: false

— geändert am 04.10.2016 18:32:40

Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 9.297

04.10.2016 18:44:40 via Website

Weil du das nicht passendd geändert hast:

Process mIpAddrProcess = runtime.exec("/system/bin/ping -c 1 " + ip);

nach der 1 vor den Gänsefüßchen hoch muss das leerzeichen.
Dann geht es...

LG Pascal //It's not a bug, it's a feature. :) ;)

  • Forum-Beiträge: 33

04.10.2016 19:08:11 via Website

Leider nein hab ich auch schon probiert
ES TUD MIR ECHT LEID

///////////////////////////////////Ping /////////////////////////////////////////////////

View.OnClickListener myhandler1 = new View.OnClickListener() {
    public void onClick(View v)
    {
        boolean pingable = isPingable("192.168.178.152");
        Log.d("isPingable","Ping result: " + String.valueOf(pingable));
    }

    private boolean isPingable(String ip)
    {
        System.out.println(" executeCammand");
        Runtime runtime = Runtime.getRuntime();
        try {
            Process mIpAddrProcess = runtime.exec("/system/bin/ping -c 1 " + ip);
            int mExitValue = mIpAddrProcess.waitFor();
            System.out.println(" mExitValue " + mExitValue);


            if (mExitValue == 0) {
                return true;
            } else {
                return false;
            }
        } catch (InterruptedException ignore) {
            ignore.printStackTrace();
            System.out.println(" Exception:" + ignore);
        } catch (IOException e) {
            e.printStackTrace();
            System.out.println(" Exception:" + e);
        }
        return false;
    }

};

10/04 19:06:22: Launching app
I/System.out: executeCammand
I/System.out: mExitValue 1
D/isPingable: Ping result: false
I/Choreographer: Skipped 599 frames! The application may be doing too much work on its main thread.
I/System.out: executeCammand
I/System.out: mExitValue 1
D/isPingable: Ping result: false
I/Choreographer: Skipped 599 frames! The application may be doing too much work on its main thread.

— geändert am 04.10.2016 19:09:15

Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 9.297

04.10.2016 19:55:35 via Website

http://stackoverflow.com/questions/34328933/android-java-system-bin-ping-always-returns-exitcode-2-why
Bei mir tut das genau so...

Hast du Internet Permission in der Manifest gesetzt?

Ansonsten: Installiere dir den TerminalEmulator und probiere es ob es darin geht.

Ansonsten Exit Code 1 ist no reply
http://stackoverflow.com/questions/921398/exit-status-of-the-ping-command

LG Pascal //It's not a bug, it's a feature. :) ;)

  • Forum-Beiträge: 33

04.10.2016 20:16:07 via Website

Internet permissions sind natürlich in der Manifest gesetzt. Oje das hab ich was angefangen.

Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 9.297

04.10.2016 20:20:04 via Website

Und was passiert wenn du ne andere IP nimmst z.b. 8.8.8.8 o.ä.?

hier mal mein Code der bei mir super funktioniert:

 public static boolean ping(String host)
    {
        Runtime runtime = Runtime.getRuntime();
        try
        {
            Process  mIpAddrProcess = runtime.exec("/system/bin/ping -c 1 " + host);
            int mExitValue = mIpAddrProcess.waitFor();
            System.out.println(" mExitValue "+mExitValue);
            if(mExitValue==0){
                return true;
            }else{
                return false;
            }
        }
        catch (InterruptedException ignore)
        {
            ignore.printStackTrace();
            System.out.println(" Exception:"+ignore);
        }
        catch (IOException e)
        {
            e.printStackTrace();
            System.out.println(" Exception:"+e);
        }
        return false;
    }

— geändert am 04.10.2016 20:20:19

LG Pascal //It's not a bug, it's a feature. :) ;)