2015년 4월 15일 수요일

C# Web 에서 접속한 사용자의 IPv4 알아내기

원래 C# 에서 접속한 사용자의 아이피를 알아내는 것은 매우 쉬웠다.
그냥 Request.ServerVariables["REMOTE_ADDR"] 속성만 불러오면 바로 알수 있었으니까.

그러나... 이제는 ...


이렇게 웹폼을 하나 등록하고...


기존에 하던대로 Request.ServerVariables["REMOTE_ADDR"] 값을 불러와보면...


이렇게 IPv6 형태의 아이피를 가지고 오게 된다.
하지만, 아직은 IPv6 보다는 IPv4 가 필요한 경우가 더 많으므로, IPv4 를 조회해올 방법이 필요하다.

그럴려면....


이렇게 하면 된다.

using System.Net; ... 을 추가해주고


public string GetIP4Address()
{
    string strIP4Address = String.Empty;

    foreach (IPAddress objIP in Dns.GetHostAddresses(Dns.GetHostName()))
    {
        if (objIP.AddressFamily.ToString() == "InterNetwork")
        {
            strIP4Address = objIP.ToString();
            break;
        }
    }
    return strIP4Address;
}


... GetIP4Address() 를 사용하면...


이렇게 IPv4 의 IP 주소가 나올것이다.