내 앱이 실행되는 장치의 공용 IP 주소를 알아야합니다. 응용 프로그램은 Windows Store WinRT / Metro 앱입니다.
사용 : NetworkInformation.GetInternetConnectionProfile 및 NetworkInformation.GetHostNames 공용이 아닌 로컬 IP 주소를 검색 할 수 있습니다.
결국 나는 IP 주소와 호스트 이름의 지리적 위치를 검색하기위한 공용 REST API 인 http://freegeoip.net/xml/ 을 찾았습니다 . 그러나 이것은 실행 가능한 해결책이 아닙니다. 내가 뭔가를 놓치고 있는지 궁금합니다. 또는 더 쉬운 방법이 있다면?
외부 IP 주소를 찾는 간단한 방법은 인터넷에서 개방형 서비스를 사용하는 것입니다.
예를 들어 여기에서 가져옵니다 . 외부 IP 주소를 가져 오지만 WinRT에서 작동하도록 조정 됨
Task<string> result = GetExternalIP();
string externalIP = (new Regex(@"\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}"))
.Matches(result.Result)[0].ToString();
......
public async Task<string> GetExternalIP()
{
HttpClient http = new System.Net.Http.HttpClient();
HttpResponseMessage response = await http.GetAsync("http://www.realip.info/api/p/realip.php");
return await response.Content.ReadAsStringAsync();
}
해당 URL을 브라우저에서 직접 시도하면이 콘텐츠가 포함 된 간단한 HTML 페이지가 표시됩니다.
{"IP":"150.37.216.15"}
그런 다음 Regex는 IP 정보 150.37.216.15를 추출합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다