【问题标题】:Get Client's unique IP Address from a domain in .Net从 .Net 中的域获取客户端的唯一 IP 地址
【发布时间】:2019-06-17 20:02:39
【问题描述】:

我已经在 Azure 中部署了一个 .net 应用程序。我正在使用以下代码获取客户端计算机 IP 地址。它适用于个人系统,但如果我从连接在网络中的办公室访问该应用程序,我我办公室的所有系统都获得了相同的公共 IP。

public string GetIPAddress()
{
IPHostEntry Host = default(IPHostEntry);
string Hostname = null;
Hostname = System.Environment.MachineName;
ViewBag.UserHostName = Hostname;
Host = Dns.GetHostEntry(Hostname);
foreach (IPAddress IP in Host.AddressList)
{
if (IP.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
{
IPAddress = Convert.ToString(IP);
}
}
return IPAddress;
}

我想识别正在访问应用程序的每个单独的 IP。如果我也从办公室域访问,任何人都可以帮助我如何检索个人系统 ip。

提前谢谢...

【问题讨论】:

    标签: .net ip-address


    【解决方案1】:

    我想识别访问应用程序的每个单独的 IP

    现实并不在乎。您的办公室已决定隐藏自己 - 可能是 NAT 设备。这就是您的愿望结束的地方,因为如果它发生在客户端,就不可能做到这一点。

    更具体地说:您无法识别每个单独的 IP,句号。隐藏 IP 地址的整个概念是保持它们隐藏。如果您要运行反向代理,代理会将其添加到 Web 服务器的标头中以供分析,但那是另一端(即将流量分配到多个服务器)。 NAT 后面的办公室根本不添加信息。我昨天收到了一个包,告诉我里面是什么;)

    而且,顺便说一句,地址不会是唯一的。 NAT 设备的使用是在内部使用私有地址空间,每个公司都会这样做。这种独一无二的可能性——当这个怪胎星球上的每个路由器似乎都设置为使用 192.168.0.x 作为默认网络时——非常低。当您在您的网站上吸引更多人时,内部 IP 就不是唯一的。这可能会很快发生 - 运营商级 NAT 正在使用中,因为我们没有地址。尤其是移动设备是隐藏的,因为不需要接触它们(并且会给用户带来成本)。

    【讨论】:

      猜你喜欢
      • 2019-11-13
      • 1970-01-01
      • 2019-01-14
      • 2015-03-01
      • 2014-04-27
      • 1970-01-01
      • 2013-07-07
      • 2011-05-26
      • 1970-01-01
      相关资源
      最近更新 更多