如何从Java Android Ping外部IP

正在为Android 2.2开发Ping应用程序。

我尝试了我的代码,它可以工作,但是仅在本地IP中,这也是我想对外部服务器执行ping操作的问题。

这是我的代码:

  private OnClickListener milistener = new OnClickListener() {

public void onClick(View v) {

TextView info = (TextView) findViewById(R.id.info);

EditText edit = (EditText) findViewById(R.id.edit);

Editable host = edit.getText();

InetAddress in;

in = null;

// Definimos la ip de la cual haremos el ping

try {

in = InetAddress.getByName(host.toString());

} catch (UnknownHostException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

// Definimos un tiempo en el cual ha de responder

try {

if (in.isReachable(5000)) {

info.setText("Responde OK");

} else {

info.setText("No responde: Time out");

}

} catch (IOException e) {

// TODO Auto-generated catch block

info.setText(e.toString());

}

}

};

Ping 127.0.0.1-> OK

Ping 8.8.8.8(Google DNS)->超时

我也将以下行放在清单XML中:

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

谁能告诉我我做错了什么?

回答:

获取ip命中的布尔值

public Boolean getInetAddressByName(String name)

{

AsyncTask<String, Void, Boolean> task = new AsyncTask<String, Void, Boolean>()

{

@Override

protected Boolean doInBackground(String... params) {

try

{

return InetAddress.getByName(params[0]).isReachable(2000);

}

catch (Exception e)

{

return null;

}

}

};

try {

return task.execute(name).get();

}

catch (InterruptedException e) {

return null;

}

catch (ExecutionException e) {

return null;

}

}

以上是 如何从Java Android Ping外部IP 的全部内容, 来源链接: utcz.com/qa/413843.html

回到顶部