2017-12-14 7 views
0

올바른 해결책을 찾지 못했습니다. 아래 코드는 로컬 IP 주소를 제공합니다 (Wi-Fi에 연결 한 경우 192.168.0.x와 같은 IP 주소를 제공함). 공개 IP 주소를 입력하십시오. "내 IP가 무엇인지"Google에서 검색하는 것과 같습니다.프로그래밍 방식으로 공용 IP 주소를 가져 오는 방법은 무엇입니까?

public static String getLocalIpAddress() { 
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() && inetAddress instanceof Inet4Address) { 
       return inetAddress.getHostAddress(); 
      } 
     } 
    } 
} catch (SocketException ex) { 
    ex.printStackTrace(); 
} 
return null; 
} 

또는

WifiManager wm = (WifiManager) getSystemService(WIFI_SERVICE); 
    String ip = Formatter.formatIpAddress(wm.getConnectionInfo().getIpAddress()); 

사람이 도와 드릴까요? 감사!

+1

[코드에서 장치의 IP 주소를 얻는 방법?] (https : // stackoverflow.com/questions/6064510/how-to-get-ip-device-from-code) –

답변

3

단계 # 1 : 요청자의 IP 주소

단계 # 2를 반환하는 웹 서비스를 만들기 : 당신의 응용 프로그램에서 해당 웹 서비스를 호출합니다.

장치가 공용 IP 주소를 알지 못합니다 (해당 장치가 심각하게 잘못 구성되어 있지 않은 경우).

3

whatismyip.com에서 WS https://api.whatismyip.com/ip.php을 사용할 수 있습니다. 이렇게하면 IP 주소 만 간단한 텍스트로 출력됩니다. (어떤 입력에 필요한 출력은 선택 사항 없음)

당신이해야합니다 당신은 ipify.org

에서 웹 서비스를 이용하실 수 있습니다

API를

업데이트 원치 않음에 액세스 할 수있는 골드 레벨 회원이 될

설명서를 통해 읽으십시오. here

https://api.ipify.org/?format=json WS를 사용하면 장치 공용 IP 주소를 가져올 수 있습니다. 이렇게하면 IP 주소가 JSON 형식으로 출력됩니다. (당신은 분당 요청 수백만을하는 경우에도)

  • 당신은 제한없이 사용할 수 있기 때문에

    당신은 ipify 사용해야합니다.
  • 항상 온라인 상태이며 사용할 수 있으며 인프라는 Heroku에 의해 구동됩니다. 즉, API를 실행중인 서버가 사망했는지 또는 동해안의 절반을 파괴하는 엄청난 토네이도가있는 경우에도 ipify가 계속 실행 중임을 의미합니다.
  • 이것은 IPv4와 IPv6 주소 모두에서 완벽하게 작동하므로 사용중인 기술의 종류에 관계없이 문제가 발생하지 않습니다.

....................

....................

+0

'http://api.whatismyip.com/ip.php WS를 사용하여 장치 공용 IP 주소 얻기' 그건 작동하지 않습니다. 게시하기 전에 시도해보십시오. – greenapps

+0

*** API ***에 액세스하려면 골드 레벨 멤버 여야합니다. WhatIsMyIP.com의 골드 멤버입니까? –

+0

회원이되어야하는 서버를 사용하는 것은별로 의미가 없습니다. 왜 지금 당장 말하지 않았 니? – greenapps

-1

https://whatismyipaddress.com 또는 http://howtofindmyipaddress.com/과 같은 서버로 전화를 겁니다.

페이지 소스가있는 경우 IP 주소를 구문 분석하십시오.

귀하의 IP 주소만을 반환하는 다른 서버가 있습니다. 위의 두 가지 HTML 페이지가 아닙니다. 하지만 어느 것을 잊어 버렸 는가 ...

+0

귀하의 개인 정보 취급 방침이 귀하가 소유하고있는 웹 서비스가 아닌 다른 사람의 웹 서비스에 대한 이러한 요청을하고 있음을 지적하십시오. – CommonsWare