2012-03-28 11 views
1

Ich habe das Programm für Wifi-Tethering, das ich einen offenen (nicht gesicherten) Hotspot in Android bekam. Ich möchte die Details des Clients (SSID und IP-Adresse) sehen, die mit meinem Hotspot verbunden sind. Ich habe SocketAddress socketid = socket.getLocalSocketAddress(); und verwendet auchErhalten der IP-Adresse des Clients oder Abrufen der Informationen (SSID) der mit Hotspot Android verbundenen Clients (nach dem Tethering)

public void getLocalIpAddressString() { 
    try { 
     for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) { 
      NetworkInterface intf = en.nextElement(); 
      for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) { 
       InetAddress inetAddress = enumIpAddr.nextElement(); 
       if (!inetAddress.isLoopbackAddress()) { 
        // return inetAddress.getHostAddress().toString(); 
        Toast.makeText(getApplicationContext(), inetAddress.getHostAddress().toString(), 
          Toast.LENGTH_SHORT).show(); 

       } 
      } 
     } 
    } catch (Exception ex) { 
     Log.e("IPADDRESS", ex.toString()); 
    } 
    // return null; 
    } 

Diese wird wieder nur die lokale IP, aber können Sie mir bitte helfen, in immer die IP-Adresse des Clients mit meinem WLAN-Hotspot. Vielen Dank.

Antwort

5

Endlich habe ich die Antwort für die Client-IP-Verbindung zu meinem Hotspot bekommen. Der folgende Code wird den Mac verfolgen und IP ändert sich jedes Mal, wenn ein neuer Kunde zu meinem Netzwerk hinzugefügt wird

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]); 
       } 
      } 
     } 
+0

'cat/proc/net/arp' war, woran ich erinnert werden musste, danke. – rymo

+0

funktioniert dieser Code für Android 2.x und höher? @ShyamDev – gumuruh

0

Sie suchten in java.net? Es ist auch in der android dev ...

+0

Fabian ich die Codes überprüft, aber ich bin nicht in der Lage jeden geeigneten Code zu finden, die die angeschlossenen Clients zu meinem Hotspot steuern kann oder atleast sogar, um die Details von ihnen zu sehen –

Verwandte Themen