public String getLocalIpAddress() {
try {
Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces();
while(en.hasMoreElements()) {
NetworkInterface interf = en.nextElement();
Enumeration<InetAddress> ips = interf.getInetAddresses();
while (ips.hasMoreElements()) {
InetAddress inetAddress = ips.nextElement();
if (!inetAddress.isLoopbackAddress()) {
return inetAddress.getHostAddress().toString();
}
}
}
} catch (SocketException ex) {
//Log.e("Error", ex.toString());
System.out.println(ex.toString());
}
return null;
}
여러가지 소스를 찾아봤지만 이게 가장 깔끔한거 같다...
만약 그냥 저소스를 그대로 쓰면 에러가 난다.
NetworkInterface.getNetworkInterfaces();
이부분 에서 exception이 나는데 권한이 없다고 나와서 보니
manifest에
<uses-permission android:name="android.permission.INTERNET"/>
를 추가하니 잘되었다.
'Android App' 카테고리의 다른 글
[android] string.xaml에 정의된 string 사용하기 (0) | 2014.05.26 |
---|---|
[android] 3G 인지 WIFI인지 체크하기 (0) | 2014.05.26 |
[android] 직접실행창이 없는 이클립스에서 비슷하게 구현하기(inspect 이용) (0) | 2014.05.15 |
[android] Thread에서 UI Update하기 (0) | 2014.05.13 |
[Android] Thread를 이용한 UDP Server/Client 만들기 (0) | 2014.05.13 |