2012-03-28 6 views
1

나는 안드로이드에서 열린 (비보안) 핫스팟이있는 Wifi 테 더링을위한 프로그램을 가지고 있습니다. 내 핫스팟에 연결된 클라이언트 (SSID 및 IP 주소)의 세부 정보를보고 싶습니다. SocketAddress를 사용했습니다. socketid = socket.getLocalSocketAddress(); 또한 로컬 IP를 반환합니다 클라이언트의 IP 주소 얻기 또는 핫스팟 안드로이드 (테더링 후)에 연결된 클라이언트의 정보 (SSID) 얻기

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; 
    } 

를 사용하지만 당신은 내 와이파이 핫스팟에 연결된 클라이언트의 IP 주소를지고 나를 도와주세요 수 있습니다. 고맙습니다.

답변

5

마지막으로 내 핫스팟에 연결된 클라이언트 IP를 얻기위한 응답을 얻었습니다. 아래 코드는 맥을 추적하고 IP는 새로운 클라이언트가 내 네트워크

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'의 내용을 보았을 때조차도 기억해야 할 필요가있었습니다. – rymo

+0

이 코드는 안드로이드 2.x 이상에서 작동합니까? @ShyamDev – gumuruh

0

java.net에서 검색하셨습니까? 그것은 또한 안드로이드 dev에 나열되어 있습니다 ...

+0

파비안 내가 코드를 확인하지만 난 내 핫스팟 또는에 연결된 클라이언트를 제어 할 수있는 적절한 코드를 찾을 수없는 오전에 추가 될 때마다 변경 최소한 –

관련 문제