마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

IP를 받아오는데 웹에서 받아온 값과 틀린 이유가 무었일까요?

0 추천
TextView tv_IP;
String ip = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv_IP = (TextView)findViewById(R.id.textView1);
ip = getLocalIpAddress();
tv_IP.setText("ip : " + ip);
 
}
 
public String getLocalIpAddress(){
String ipAddress = null;
    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()) {
                    ipAddress = inetAddress.getHostAddress().toString();
                }
            }
        }
    } catch (SocketException ex) {}
return ipAddress;
}
 
 
이렇게 소스 구현을 하였습니다. 
그런데.. 더욱 궁금한게 있습니다.
스마트폰에 찍힌 아이피 결과 : ex) 10.10.10.10
네이버에서 내 아이피 확인한 결과 : ex) 20.30.40.50
 
이런식으로 완전히 틀리게 나오는 이유는 무었일까요?
원창현 (260 포인트) 님이 2015년 1월 20일 질문

1개의 답변

0 추천
WIFI에 접속했으면 당연히 다르게 나옵니다.
익명사용자 님이 2015년 1월 21일 답변
3G로 접속한 결과입니다.
3G 상태로 위의 소스에찍힌 값은 1이면 그 값에서 웹에서 보는 아이피가 2로 나오네요.. 이유가 궁금합니다.
소스에서 찍은 IP는 사설 IP 입니다.
그리고 네이버에서 확인하신 것은 Real IP 이구요.
...