2012-04-13 138 views

回答

2

上述功能僅是可能的檢查IP地址將逐個添加的arp緩存每個人如何連接到設備。使用下面的代碼並檢查。只要把按鈕與適當的名稱,並調用此方法上點擊

public void getClientList() { 

    int macCount = 0; 
    BufferedReader br = null; 
    try { 
     br = new BufferedReader(new FileReader("/proc/net/arp")); 
     String line; 
     while ((line = br.readLine()) != null) { 
      String[] splitted = line.split(" +"); 

      if (splitted != null && splitted.length >= 4) { 
       // Basic sanity check 
       String mac = splitted[3]; 

       if (mac.matches("..:..:..:..:..:..")) { 
        macCount++; 
        ClientList.add("Client(" + macCount + ")"); 
        IpAddr.add(splitted[0]); 
        HWAddr.add(splitted[3]); 
        Device.add(splitted[5]); 
        Toast.makeText(
          getApplicationContext(), 
          "Mac_Count " + macCount + " MAC_ADDRESS " 
            + mac, Toast.LENGTH_SHORT).show(); 
        for (int i = 0; i < splitted.length; i++) 
         System.out.println("Addressssssss  " 
           + splitted[i]); 
       } 
      } 
     } 
     // ClientList.remove(0); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } finally { 
     try { 
      br.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
} 
+0

感謝您的幫助希亞姆,非常感謝 – 2012-04-13 06:42:45

+0

,你可以探索這個更多,如果我想識別在這個代碼網絡上的網絡攝像頭....我怎麼能做到這一點 – 2012-04-13 06:44:10

+0

@AshishTamrakar - 嗨朋友,IP攝像頭(如Linksys)得到了無線網絡的能力(像其他設備),以便您可以直接連接通過wifi將相機傳輸到Android。在這種情況下,你可以使用IpAddr.add(splitted [0]);從上面的代碼中獲取攝像機的IP地址。但是如果攝像頭是由另一臺服務器(如擁有自己的軟件的計算機)操作的,那麼您需要進行套接字編程,以便從服務器獲得響應,以獲取連接到該服務器的所有設備(包括攝像頭)的Ipaddress你的機器人。 – 2012-04-16 06:36:25

2

使用

感謝這段代碼獲取外部IP地址

 HttpClient httpclient = new DefaultHttpClient(); 
     HttpGet httpget = new HttpGet("http://api.externalip.net/ip/"); 
     HttpResponse response = null; 
     try 
     { 
     response = httpclient.execute(httpget); 
     } 
     catch (ClientProtocolException e) 
     { 
    e.printStackTrace(); 
     } 
     catch (IOException e) 
     { 
    e.printStackTrace(); 
     } 
     Log.e("",""+response); 
     HttpEntity entity = response.getEntity(); 
     if (entity != null) { 
     long len = entity.getContentLength(); 
     if (len != -1 && len < 1024) 
     { 
     try 
     { 
     str=EntityUtils.toString(entity); 
     Log.e("",""+str); 
     } 
     catch (ParseException e) 
     {    
    e.printStackTrace(); 
    } 
     catch (IOException e) 
     {     
    e.printStackTrace(); 
    } 
    } 
     }