programing

요청 간의 차이점은 무엇입니까?사용자 호스트 주소 및 요청.서버 변수["REMOTE_ADDR"].문자열로()

muds 2023. 8. 14. 23:09
반응형

요청 간의 차이점은 무엇입니까?사용자 호스트 주소 및 요청.서버 변수["REMOTE_ADDR"].문자열로()

여기서는 이 두 가지 방법 중 하나를 사용할 수 있습니다.차이점은 무엇이고 어떤 것을 사용해야 합니까?

방법 1:

    string srUserIp = "";
    try
    {
        srUserIp = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString();
    }
    catch
    {

    }

방법 2:.

    string srUserIp = "";
    try
    {
        srUserIp = Request.UserHostAddress.ToString();
    }
    catch
    {

    }

단답:그 둘은 동일합니다.

긴 답변:두 가지 차이를 확인하려면 Reflector(또는 원하는 분해기)를 사용합니다.

의 코드는 다음과 같습니다.HttpRequest.UserHostAddress속성은 다음과 같습니다.

public string UserHostAddress
{
    get
    {
        if (this._wr != null)
        {
            return this._wr.GetRemoteAddress();
        }
        return null;
    }
}

반환됨에 유의하십시오._wr.GetRemoteAddress().그_wr변수는 변수의 인스턴스입니다.HttpWorkerRequest물건.에서 파생된 다른 클래스가 있습니다.HttpWorkerRequest어떤 것이 사용되는지는 IIS 6, IIS 7 또는 그 이상의 요소를 사용하는지에 따라 다르지만 웹 응용 프로그램에서 사용하는 모든 요소는 동일한 코드를 가집니다.GetRemoteAddress()즉, 다음과 같습니다.

public override string GetRemoteAddress()
{
    return this.GetServerVariable("REMOTE_ADDR");
}

당신이 볼 수 있듯이.GetRemoteAddress()단순히 서버 변수를 반환합니다.REMOTE_ADDR.

어떤 것을 사용할 것인지에 대해서는, 저는 제안하고 싶습니다.UserHostAddress속성은 "확장 문자열"에 의존하지 않습니다.

해피 프로그래밍

차이가 없습니다.정확히 같은 값을 반환합니다.하지만 하나는 인텔리센스 친화적인 반면 다른 하나는 그렇지 않습니다.

언급URL : https://stackoverflow.com/questions/13994582/what-is-the-difference-between-request-userhostaddress-and-request-servervariabl

반응형