2012-08-27 45 views
0

我想ping我的移动AP的客户端。这样我想看看客户端是否真的连接到我的热点,因为当我关闭我的热点时,/proc/net/arp只能刷新。Ping Mobile的移动AP客户端

这是我的AsyncTask:

protected Boolean doInBackground(Object... arg0) { 
    // TODO Auto-generated method stub 
    try { 
     InetAddress ip = (InetAddress) arg0[0]; 
     this.context = (Context) arg0[1]; 
     return connected = ip.isReachable(5000); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    return false; 
} 

@Override 
protected void onPostExecute(Boolean result) { 
    // TODO Auto-generated method stub 
    super.onPostExecute(result); 
    android.widget.Toast.makeText(this.context, String.valueOf(this.connected), android.widget.Toast.LENGTH_SHORT).show(); 

} 

有没有办法来ping客户端,当你的设备是不是根植?

+0

东西要记住:即使发送ping命令是没有问题的,但也不能保证你的客户响应ICMP ... – kabuko

+0

但它比没有好;) – Wolfen

回答

0

既然你有一个IP地址,你可以做

public static String ping(String _ip) { 

    try { 
     String command = "ping -c 10 " + _ip; 
     Process p = null; 
     p = Runtime.getRuntime().exec(command); 
     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); 
      buffer.append("\n"); 
     } 
     String bufferStr = buffer.toString(); 
     return bufferStr; 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } catch (InterruptedException e) { 
     e.printStackTrace(); 
    } 
    return null; 
} 
相关问题