2011-03-09 6 views
4

Wifi 네트워크에 연결되는 Android 앱을 만들고 싶습니다. 예를 들어 네트워크 SSID = "ABC"입니다. Wi-Fi ABC에 연결되어 있다고 가정합니다. ABC에 연결 한 후 동일한 Wi-Fi ABC 네트워크에 연결된 모든 안드로이드 장치의 ips를 내 응용 프로그램에 표시해야합니다. 나는 그것을 어떻게 얻을 수 있습니까? 감사합니다.Wifi에 연결된 Android 기기 감지

+0

스택 오버플로에 오신 것을 환영합니다! 답변을 사용하여 추가 정보를 게시하거나 다른 답변에 대한 답변을 따르지 마십시오. 간단히 질문을 편집하여 설명을 제공하거나 게시 된 답변 아래에있는 주석을 사용하여 작성자와 직접 상호 작용하십시오. –

답변

1

네트워크 카드를 설치 모드로 설정하고 패킷을 캡처하여 네트워크에있는 다른 클라이언트를 식별 할 수 있습니다. http://source.android.com/porting/tcpdump.html

당신과 같이 코드에 명령을 실행할 수 있습니다 :

try { 
    // Executes the command. 
    Process process = Runtime.getRuntime().exec("/system/bin/ls /sdcard"); 

    // Reads stdout. 
    // NOTE: You can write to stdin of the command using 
    //  process.getOutputStream(). 
    BufferedReader reader = new BufferedReader(
      new InputStreamReader(process.getInputStream())); 
    int read; 
    char[] buffer = new char[4096]; 
    StringBuffer output = new StringBuffer(); 
    while ((read = reader.read(buffer)) > 0) { 
     output.append(buffer, 0, read); 
    } 
    reader.close(); 

    // Waits for the command to finish. 
    process.waitFor(); 

    return output.toString(); 
} catch (IOException e) { 
    throw new RuntimeException(e); 
} catch (InterruptedException e) { 
    throw new RuntimeException(e); 
} 
+1

Wi-Fi에 연결된 모든 컴퓨터 또는 모바일 장치를 포함하는 모든 장치에 지정된 패킷을 받았다고 가정하면 패킷을보고 Android 이외의 장치와 안드로이드 장치를 어떻게 구분할 수 있습니까? 패킷을 보내거나받는 응용 프로그램이 패킷/프로세스를 구별 할 수있는 방법이 있습니까? – Farhan

4

체크 아웃 파일 :/proc 디렉토리/그물/ARP를 휴대 전화에 안드로이드에 tcpdump와 사용 방법

.

동일한 네트워크에 연결된 다른 모든 장치의 IP 및 MAC 주소가 있습니다. 그러나 나는 당신이 안드로이드 전화인지 아닌지 구별 할 수 없을 것이라고 호언 장담하고 있습니다.