2011년 6월 7일 화요일

Get IPv4 Address using Dns.GetHostEntry



 예전부터 찜찜하게 생각했던 부분을 오늘 집고 넘어가려고 한다.

로컬 호스트의 IP 주소를 얻기 위해서 Dns.Resolve 메소드를 사용했다.
간단하게 로컬 호스트의 IPv4 주소를 얻을 수 있다.

하지만 VS 출력창에 다음과 같은 경고 메시지가 나온다.




 

Dns.GetHostEntry 메소드를 사용하면 되는데 그렇게 되면 결과셋인 IPHostEntry 객체에 로컬 호스트가 사용하는 IPv4, IPv6 등 모든 정보를 갖게 된다.
나중에야 IPv6 를 사용하긴 할테지만 지금 프로젝트에선 IPv4만 사용하는데.. 이 것 만 어떻게 뽑아 낼까??

외국 아이들도 같은 고민을 했나보다. 뭐... 결국 MSDN만 잘 봤으면 쉽게 해결할 수 있는 거지만..
cf ) GetHostEntry.AddressList[0] returns ::1 on current Windows version even with IPv6 off. Can I change this?

IPHostEntry 에서 AddressList의 IPAddress 인스턴스의 AddressFamily 프로퍼티 값으로 선별 가능하다.

댓글 없음:

댓글 쓰기