IP 변조 실패 시도

2517 단어 IP
내 시스템에 기록된 방문객 IP에 10.0.0.1이라는 IP가 등장했다. 이것은 개인 IP인 것 같아서 IP를 얻는 코드에 대해 또 한바탕 궁리했다.
우선 IP를 획득한 코드를 살펴보겠습니다.
            string userIP = string.Empty;



            if (HttpContext.Current.Request.ServerVariables["HTTP_VIA"] == null)

            {

                userIP = HttpContext.Current.Request.UserHostAddress;

            }

            else

            {

                userIP = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];

            }
Response.Write(userIP);

우선 ServerVariables 컬렉션은 무엇일까요?W3C School은 서버 변수 값을 다시 가져오는 데 사용되는 컬렉션으로 설명합니다.이상하게도 방문객 IP와 같은 정보는 왜 서버 변수 집합에 저장되어 있습니까?
HttpWebRequest 클래스는 요청 헤더 정보를 사용자 정의할 수 있습니다. 이 정보를 수정하여 성공할 수 있는지 확인하려고 합니다.
          HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://localhost:4866/WebForm.aspx");

                 request.Headers.Add("X_FORWARDED_FOR", "0.0.0.0");

                 request.Headers.Add("HTTP_VIA", "0000"); 
          HttpWebResponse response
= (HttpWebResponse)request.GetResponse();
          StreamReader stream
= new StreamReader(response.GetResponseStream(),Encoding.Default);
          string IP = stream.ReadToEnd(); stream.Close(); response.Close();
          request
= null;

불행하게도 이런 방식은 실패했다. 얻은 IP는 여전히 네이티브 IP이다.나중에 인터넷에서 다른 방식으로 HTTP 를 설정하는 걸 봤어요.VIA
request.Headers.Set(HttpRequestHeader.Via,"00000");

아마도 Add는 사용자 정의 헤더 정보용일 것입니다. Set은 시스템 헤더 정보용일 것입니다.이렇게 변경하면 출력 IP가 0.0.0.0이 됩니다.그렇다면 인터넷상에서 IP를 제한하는 시스템은 모두 간단하게 해독하는 것이 아니겠는가?
자신을 증명할 수 있도록 URL을 ip138(http://iframe.ip138.com/ic.asp) 테스트에서 실제 IP를 반환했습니다.
초보적으로 추정, HTTPVIA라는 헤더 정보는 한 번의 네트워크를 통해 전송된 후에 한 번 바뀔 것이다. 왜냐하면 나는 본기 테스트를 하기 때문에 0.0.0.0의 상황이 나타날 것이다.
그래서 위에서 방문객 IP의 코드가 정확해야 한다고 판단했는데 시스템의 10.0.0.1은 어떻게 나타났을까요?

좋은 웹페이지 즐겨찾기