2013-03-12 2 views
1

InetAddress.getLocalHost() 또는 InetAddress.getByName (문자열 호스트)을 시도 할 때마다 nba.com과 같은 알려진 웹 사이트에서도 예외가 발생합니다. 조금 혼란 스러워요 참고 대상 장치는 안드로이드 4.1.1 GS3 및 와이파이 및 모바일 네트워크에 있습니다. 59 : 52.636 : I/System.out에 (18996) : 사전에 잡힌 예외 = null이InetAddress를 사용하여 자체 IP 가져 오기

감사

  try{ 
     InetAddress ownIP=InetAddress.getLocalHost(); 
     System.out.println("IP of my Android := "+ownIP.getHostAddress()); 
     }catch (Exception e){ 
      System.out.println("Exception caught ="+e.getMessage()); 
      String t = e.getMessage() + "yes"; 
     } 

아래 아래 코드는 System.out에

03-12 18

+0

이 게시물 http://stackoverflow.com/questions/6064510/how-to-get-ip-address-of-the-device – Quanturium

+0

를 살펴 보자') (InetAddress.getLocalHost'의 경우 실제로 예외를 던지면 잘못 구성된'hosts' 파일 및/또는 DNS가 있습니다. – EJP

답변

2

을 할 수 있는지 여부를 알 수 있습니다 Honeycomb (API 11)에 대한 내용은 Google 사양에 대한 설명입니다.

"구글은 android.os 패키지에서 AsyncTask를 클래스를 사용하는 것이 좋습니다 기본 사용자 인터페이스 스레드를 차단하지 않도록하려면 :"그래서 모든 나는 AsyncTask를 확장하는 새로운 클래스 NetTask를 만드는 등 모든 네트워크 응용 프로그램을 수행했다

이제 내 코드가 작동 중입니다. IDK는 다른 사람들이 그 사실을 알았지 만 나 같은 신생 로봇이 여전히 해결책을 찾고 있음을 대비해서 이것을 게시 할 것이라고 생각했습니다 :) !!!

감사

2

나는 내 자신의 IP를 얻기 위해 까다로운 방법을 사용합니다. 그것이 내가 내 문제는 당신이 안드로이드 메인 스레드에서이 전에 선택이었다 모든 네트워크 작업을 수행 할 수 없습니다 지금 필요한 것 같아요 기본적으로 무엇을 발견했다 생각하면

String getIP() { 
    try { 
     Socket socket = new Socket("google.com", 80); 
     return socket.getLocalAddress().getHostAddress(); 
    } catch (Exception e) { 

    } 
} 
관련 문제