2016-11-23 4 views
1

나는 포트에 수신 서비스 코드의 조각을 가지고 다음 HttpListenerContext.Request.RemoteEndPointHttpListenerContext.Request.RemoteEndPoint IPADDRESS 행동

내가 눈치 챘을 사용하여 IP 주소를 기록하는 하나의 기계에 " A "를 선택하면 HttpListenerContext.Request.RemoteEndPoint는 컴퓨터 A의 IP 주소를 반환합니다. 예 : 192.168.20.12

같은 코드가 다른 컴퓨터에서 실행될 때 동일한 시스템 B에서도 원격 엔드 포인트와 함께 시스템 B를 호출하면 HttpListenerContext.Request.RemoteEndPoint는 127.0.0.1

을 리턴합니다.

아무도 왜 차이가 있는지 알고 있습니까?

내 응용 프로그램의 경우 루프백 주소가 아닌 적절한 IP 주소 (192.168.20.12)를 갖고 싶습니다. 이 정보를 얻으려면 어떻게해야합니까?

상세 정보 : 기계 A는 윈도우 7. 기계 B를 실행하는 물리적 데스크탑 인 윈도우 서버에게 2012

답변

1

문제를 실행하는 EC2 인스턴스가 HttpListenerContext.Request.RemoteEndPoint이를 반환하지입니다 wrong IP 주소 ... 문제는 포트에 연결되는 모든 것이 루프백 주소에 연결되어 있고 청취자가 올바르게보고하고 있다는 것입니다. 원격 시스템에서 연결을 모니터하기 위해 실제로 리스너를 사용하려고한다고 가정하면, 이는 실제로는 중요하지 않습니다 (원격 시스템의 루프백 주소에 연결할 수 없으므로). 마찬가지로 포트에 연결된 컴퓨터가 여러 IP 주소를 가지고있는 경우 HttpListenerContext.Request.RemoteEndPoint가 반환하는 포트를 선택할 수 없습니다. 원격 시스템이 서버에 연결하기 위해 선택한 IP 주소를 반환해야합니다.

+0

오래 지연되어서 죄송합니다. 원격 응용 프로그램에서 127.0.0.1을 사용하는 대신 실제 IP를 사용하여 연결했습니다. HttpListenerContext.Request.RemoteEndPoint는 여전히 127.0.0.1을 반환합니다. – Vicky