안드로이드에서 IP주소 구하기

public String getLocalIpAddress(){
     final String IP_NONE = "N/A";
     final String WIFI_DEVICE_PREFIX = "eth";
     
     String LocalIP = IP_NONE;
     try {
    	 NetworkInterface.getNetworkInterfaces();
            for (Enumeration en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
                NetworkInterface intf = en.nextElement();           
                for (Enumeration enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {
                    InetAddress inetAddress = enumIpAddr.nextElement();
                    if (!inetAddress.isLoopbackAddress()) {
                     if( LocalIP.equals(IP_NONE) )
                        LocalIP = inetAddress.getHostAddress().toString();
                     else if( intf.getName().startsWith(WIFI_DEVICE_PREFIX) )
                        LocalIP = inetAddress.getHostAddress().toString();
                    }
                }
            }
        } catch (SocketException e) {
            Log.e("MainActivity.class", "getLocalIpAddress Exception:"+e.toString());
        }
        return LocalIP;
    }

출처: http://blog.naver.com/ziippy/120138070384

안드로이드에서 ip 구하는코드가 필요해서 검색해서 사용하는데 자꾸 에러가 발생함NetworkInterface.getNetworkInterfaces(); 이부분에서 자꾸 Exception 발생해서 삽질하다가 깨달은것 퍼미션 문제…
그리고 퍼미션도 “android.permission.ACCESS_NETWORK_STATE” 이게 아니라 <uses-permission android:name=”android.permission.INTERNET”/> 이거였음

크리에이티브 커먼즈 라이선스 Linsoo 의 저작물인 이 저작물은(는) 크리에이티브 커먼즈 저작자표시-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.

댓글 4개

    1. 이거 적용한 풀소스코드는 회사플젝용이라 공개할 수가 없네요.
      저 코드만 가져다가 써도 사용 가능합니다.

    2. 일단 답변감사합니다!ㅎ

      이것만으로도 IP Address 가 구해지는건가요!???
      어떻게 출력하셨나요??

      현재 ip가 최종 출력물이되야하거든요ㅠ

댓글 달기

이메일 주소는 공개되지 않습니다.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.