HttpListenerContext.Request.RemoteEndPoint IP 地址行为
HttpListenerContext.Request.RemoteEndPoint Ipaddress behaviour
我在服务中有一段代码侦听端口,然后使用 HttpListenerContext.Request.RemoteEndPoint
记录 IP 地址
我注意到,在一台机器 "A" 中,当远程端点也在同一台机器 A 上时,HttpListenerContext.Request.RemoteEndPoint returns 机器 A 的 IP 地址,例如192.168.20.12
当同一段代码 运行 在不同的机器 B 上时,远程端点也在同一台机器 B 上,HttpListenerContext.Request.RemoteEndPoint returns 127.0.0.1
有人知道为什么会有差异吗?
对于我的应用程序,我想要正确的 IP 地址 (192.168.20.12) 而不是环回地址。如何获取这些信息?
更多信息: 机器 A 是物理桌面 运行ning windows 7. 机器 B 是EC2 实例 运行ning windows 服务器 2012.
问题不在于 HttpListenerContext.Request.RemoteEndPoint return 使用了 错误的 IP 地址...问题在于任何连接到端口的东西正在连接到环回地址并且您的侦听器正在正确报告该地址。假设您真的想使用您的侦听器来监视来自远程计算机的连接,这实际上是一个无关紧要的问题(因为您无法从远程计算机连接到环回地址)。同样,如果连接到您端口的机器有多个 IP 地址,您将无法选择 HttpListenerContext.Request.RemoteEndPoint return 中的哪一个。它应该 return 远程计算机选择连接到您的服务器的 IP 地址。
我在服务中有一段代码侦听端口,然后使用 HttpListenerContext.Request.RemoteEndPoint
记录 IP 地址我注意到,在一台机器 "A" 中,当远程端点也在同一台机器 A 上时,HttpListenerContext.Request.RemoteEndPoint returns 机器 A 的 IP 地址,例如192.168.20.12
当同一段代码 运行 在不同的机器 B 上时,远程端点也在同一台机器 B 上,HttpListenerContext.Request.RemoteEndPoint returns 127.0.0.1
有人知道为什么会有差异吗?
对于我的应用程序,我想要正确的 IP 地址 (192.168.20.12) 而不是环回地址。如何获取这些信息?
更多信息: 机器 A 是物理桌面 运行ning windows 7. 机器 B 是EC2 实例 运行ning windows 服务器 2012.
问题不在于 HttpListenerContext.Request.RemoteEndPoint return 使用了 错误的 IP 地址...问题在于任何连接到端口的东西正在连接到环回地址并且您的侦听器正在正确报告该地址。假设您真的想使用您的侦听器来监视来自远程计算机的连接,这实际上是一个无关紧要的问题(因为您无法从远程计算机连接到环回地址)。同样,如果连接到您端口的机器有多个 IP 地址,您将无法选择 HttpListenerContext.Request.RemoteEndPoint return 中的哪一个。它应该 return 远程计算机选择连接到您的服务器的 IP 地址。