我想尝试测试当前的 IP 地址以找到当前的国家
所以我试试这段代码...... HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
但它总是返回 127.0.0.1'
是否有任何其他代码可以让我在互联网上获取我的 ip 地址,例如 61.90.25.10 而不是本地的。
我想尝试测试当前的 IP 地址以找到当前的国家
所以我试试这段代码...... HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
但它总是返回 127.0.0.1'
是否有任何其他代码可以让我在互联网上获取我的 ip 地址,例如 61.90.25.10 而不是本地的。
HttpContext.Current.Request.UserHostAddress;
或者
HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
要获取机器的 IP 地址而不是代理,请使用以下代码
HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
但是,当您离线使用此应用程序时,您将始终收到 PC 的 IP 地址,因为这是服务器将看到的 IP,换句话说,您不会离开路由器并重新连接到服务器上,因此不会使用您的外部 IP:
如果您在在线运行的服务器上测试您的应用程序并尝试打印:
Response.Write("IP Address:");
Response.Write("IP: " + HttpContext.Current.Request.UserHostAddress);
Response.Write("IP1: " + HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]);
Response.Write("IP2: " + HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]);
您将看到您拥有的公共 ip,如果您在到达您的 PC(如 cloudflare)之前使用反向代理,请注意确保使用,HTTP_X_FORWARDED_FOR
否则您可以使用 remote_addr 或 userhostaddress。