IP地址字符串返回的是::1。如何获取测试用户从本地主机的完整IP地址。

3
我希望能够使用C#获取已登录用户的IP地址。
我已经编写了以下代码:
  var ipaddress = System.Web.HttpContext.Current.Request.UserHostAddress;

但是ip地址包含::1。我如何获取完整的地址。我只是在本地主机上测试代码。我已经安装了iis7。

注:ip地址为IPv6地址,表示本地主机。

我相信 ::1 和本地主机是一样的东西,如果我没记错的话,本地主机应该是 127.0.0.0。 - Tim
请查看此答案 - 什么是IP地址'::1' - Tim
IP地址没问题。它与127.0.0.0本地主机相同。 - शेखर
可能是重复的 https://dev59.com/X2445IYBdhLWcg3w9O3R - शेखर
也可以看一下C#中如何获取自己的IP地址? - Simon MᶜKenzie
1个回答

2

::1根据规范实际上是指向回环的有效地址。如果你想获取计算机的公共IP地址,你需要使用一个域名(带有指向本地计算机的DNS)或者在URL中使用你的公共IP地址代替localhost

编辑

你的代码没问题(没有需要更改的),但是如果你想获取公共IP地址(而不是::1或127.0.0.1),你需要从其他接口发起http请求(这意味着它将离线转换DNS为IP并查询返回)。你无法脱机进行此操作。

希望这能帮助到你,很抱歉我不能更清楚一些。这更像是一个网络问题而不是编程问题。


我不太明白你的意思,能否再具体一些?抱歉,我是C#的新手。 - Pa1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接