如何获取客户端系统IP地址?

时间:2014-04-21 15:20:34

标签: c# asp.net .net

我想抓取/跟踪客户端计算机的IP地址(请求计算机或用户的计算机)而不是服务器计算机。

我已经使用以下代码来抓取/跟踪它正在运行的客户端计算机的IP地址。

Request.ServerVariables.Get("REMOTE_HOST");

但它正在研究那些与PC直接连接的互联网调制解调器的系统

我也需要处理这些系统,其中互联网调制解调器没有直接连接到PC(通过路由器连接)。

3 个答案:

答案 0 :(得分:5)

您无法获取客户端的内部地址。这是Network Address Translationfirewalls的用途。我知道这是一个令人失望的答案,但在大多数情况下,你所要求的内容是不可能的。

唯一的例外是您同时控制客户端计算机和服务器。例如,企业环境。然后,您可以编写一些工具,将这些信息提供给服务器。显然,要求访问您网站的随机人员在他们的机器上安装您的工具并不是一个可行的选择。

如果您提供有关您的环境的更多详细信息以及为什么您想要这样做,这可能会有所帮助。

答案 1 :(得分:1)

你真的不能这样做。此外,了解内部网络IP地址不会帮助您以任何方式访问它。

答案 2 :(得分:0)

尝试使用'HTTP_X_CLUSTER_CLIENT_IP'或'HTTP_X_FORWARDED_FOR',它将返回逗号分隔IP列表

i.e.    Request.ServerVariables["HTTP_X_FORWARDED_FOR"]

由于 苏雷什