Programming/C#

C# 사설IP와 공인IP 구하는 방법 (GetHostEntry / WebClient 사용)

JeongKyun 2022. 3. 31.

서론

이번글에서는 사설과 공인ip 를 구하는 방법에 대해 정리해보려한다.

보통 작업을 할 때 로컬에서는 사설, 외부에서는 공인으로 작업하게되는데 상황에 맞게 필요한 부분만 떼어내어 사용하면 될 것 같다.

 

필자같은 경우는 공인IP를 추출하고 입력해줘야 하는 일이 생겨 사용한 케이스였다.

 


 

소스

        static void Main(string[] args)
        {

            Console.WriteLine("사설 IP : " + GetInternalIP());
            Console.WriteLine("공인 IP : " + GetPublicIP());
            Console.ReadKey();
        }

        public static string GetInternalIP()
        {
            var host = Dns.GetHostEntry(Dns.GetHostName());

            foreach (var ip in host.AddressList)
            {
                if (ip.AddressFamily == AddressFamily.InterNetwork)
                {
                    return ip.ToString();
                }
            }
            
            throw new Exception("IPv4 주소를 찾을 수 없습니다.");
        }

        private static string GetPublicIP()
        {
            string publicIp = new WebClient().DownloadString("http://ipinfo.io/ip").Trim();

            //null경우 Get Internal IP를 가져오게 한다.
            if (String.IsNullOrWhiteSpace(publicIp))
            {
                publicIp = GetInternalIP();
            }

            return publicIp;
        }

 

 

결과

반응형

댓글

💲 많이 본 글