Android:Ping命令测试网络

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		new NetPing().execute();
	}
	
	public String Ping(String str) {
		String resault = "";
			Process p;
			try {
				//ping -c 3 -w 100  中  ,-c 是指ping的次数 3是指ping 3次 ,-w 100  以秒为单位指定超时间隔,是指超时时间为100秒 
				p = Runtime.getRuntime().exec("ping -c 3 -w 100 " + str);
				int status = p.waitFor();

				InputStream input = p.getInputStream();
				BufferedReader in = new BufferedReader(new InputStreamReader(input));
			    StringBuffer buffer = new StringBuffer();
			    String line = "";
			    while ((line = in.readLine()) != null){
			      buffer.append(line);
			    }
			    System.out.println("Return ============" + buffer.toString());

				if (status == 0) {
					resault = "success";
				} else {
					resault = "faild";
				}
			} catch (IOException e) {
				e.printStackTrace();
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			

		return resault;
	}
	
	private class NetPing extends AsyncTask {

		@Override
		protected String doInBackground(String... params) {
			String s = "";
			s = Ping("www.baidu.com");
			Log.i("ping", s);
			return s;
		}
	}
		


}

 

!!!别忘了加访问网络权限!!!


下面是运行截图:

Android:Ping命令测试网络_第1张图片

如果对 运行结果中的  PING www.a.shifen.com (61.135.169.125) 感到怀疑,那么可以试一下 61.135.169.125 就是百度的网址。

 

suceess则表示连接成功

如果当前没有连接网络,return 会是 空的 ,结果会是 faild。

如果ping的网址是不存在的,而且还连接着网络,那么程序就会 停在

int status = p.waitFor();

这里,不再向下运行。

Ping远程IP    

这一命令可以检测本机能否正常访问Internet。比如本地电信运营商的IP地址为:202.101.224.69。在MS-DOS方式下执行命令:Ping 202.101.224.69,如果屏幕显示:  

C:\Documents and Settings\Administrator>ping 202.101.224.69

Pinging 202.101.224.69 with 32 bytes of data: 

Reply from 202.101.224.69: bytes=32 time=2ms TTL=250

Reply from 202.101.224.69: bytes=32 time=2ms TTL=250 

Reply from 202.101.224.69: bytes=32 time=3ms TTL=250

Reply from 202.101.224.69: bytes=32 time=2ms TTL=250 

Ping statistics for 202.101.224.69:     

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),  Approximate round trip times in milli-seconds:     

Minimum = 2ms, Maximum = 3ms, Average = 2ms 

则表明运行正常,能够正常接入互联网。反之,则表明主机文件(windows/host)存在问题。

 

如果想多了解更多关于Ping的知识,http://wenku.baidu.com/view/2042e1630b1c59eef8c7b46a.html 这里可以看一下。

上面的代码是在别人那里下载,自己稍微改动的。下载地址为 http://download.csdn.net/detail/allvenacm/4845468 

不过不好意思,我给那位的评论写错了。

你可能感兴趣的:(Android:Ping命令测试网络)