2016-08-03 5 views
0

2 개의 장치를 소켓을 통해 연결하려고하므로 데이터를 교환 할 수 있습니다. 또한 Wi-Fi 핫스팟을 통해 연결됩니다. 서비스를 사용하고 있습니다.안드로이드 - 핫스팟 호스트의 IP 주소를 얻으십시오.

장치 1은 핫 스폿 (ServerSocket이 구현 된 곳)이고 장치 2는 소켓 (Socket이 구현 된 곳)입니다. 나는 약간의 연구를했고 그들 각각의 ip를 얻을 수 있었다. (그러나 그들 자신의 클래스로 계산했다.) 하지만 클라이언트 소켓을 만들려면 다른 클래스에서 호스트의 IP 주소 (핫스팟으로 작동하는 전화)가 필요합니다. 하나의 전화를 사용하여 핫스팟 네트워크를 만들고 다른 하나의 핫스팟 네트워크에 연결하기 때문에 코드 부분이 실행되지 않기 때문에 서버 측에서 가져올 수 없습니다.

일반적으로 테 더링을 사용하는 장치의 IP 주소는 일반적으로 동일하지만 모든 전화에서 작동하는지 확인해야하므로 신뢰할 수는 없습니다.

그래서 어떻게 클라이언트 (해당 핫스팟에 연결된 전화) 서비스에서 서버 (핫스팟 호스트)의 IP 주소를 얻을 수 있습니까?

+0

클라이언트에서 클라이언트의 IP를 어떻게 결정합니까? – greenapps

+0

http://stackoverflow.com/questions/5387036/programmatically-getting-the-gateway-and-subnet-mask-details – greenapps

+0

클라이언트에서 클라이언트의 IP를 얻으려면 inetAddress에서 getHostAddress()를 사용하고있었습니다. networkinfo의 목록을 얻은 다음 각 네트워크 구성에 대해 inetaddress를 가져온 다음 loopbackaddress가 아닌 객체에 대해 getHostAddress()를 호출합니다. 이와 비슷한 것 : http://stackoverflow.com/a/10199498/6634292 –

답변