IIS를 통해 호스팅되는 웹 사이트가 있고. 그 testfile.aspx에서 클라이언트의 IP 주소를 얻고 요구 사항에 따라 리디렉션하고 싶습니다. 그러나 IP 주소를 얻으려고 할 때 사용자가 아닌 내 웹 사이트가 호스팅되는 컴퓨터의 IP가 제공됩니다.
ASP.NET에서 사용자의 클라이언트 IP 주소를 얻는 방법은 무엇입니까?
위 링크의 모든 방법을 시도했으며 모두 호스트 시스템의 IP 주소를 반환합니다. 포함 페이지의 코드와 샘플 테스트 페이지의 코드를 시도했지만 여전히 작동하지 않습니다.
버전 1
Dim ipAdd As String
ipAdd = Request.ServerVariables("REMOTE_ADDR")
ClientScript.RegisterStartupScript(Me.GetType(), "myalert", "alert('This is your ip " & ipAdd & "');", True)
버전 2
ClientScript.RegisterStartupScript(Me.GetType(), "myalert", "alert('This is your ip " & Request.UserHostAddress & "');", True)
두 방법 모두 내 IIS 웹 서버의 공용 IP를 반환합니다.
클라이언트 IP 주소가 프록시, NAT 또는로드 밸런서와 같이 애플리케이션으로가는 도중에 데이터 경로의 어딘가에서 변환되는 것 같습니다.
x-forwarded-for 헤더 에서 원래 IP 주소를 유지하도록 위치를 파악하고 구성해야합니다 . 최신 네트워크 어플라이언스에는 모두이 옵션이 있습니다.
원래 IP 주소가 전달되지 않으면 코드가 API에서이를 검색 할 수 없습니다. 가지고 있지 않은 것은 읽을 수 없습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다