C#确实需要外部ip才能获得最大的头脑服务

时间:2018-08-23 16:40:47

标签: c# geolocation maxmind

我们在Web应用程序中使用maxmind geo ip定位服务。利用这个maxmind,我们需要ipaddress作为输入。

我们正在按照以下代码片段获取IP地址。

var ip = Request.UserHostAddress;
if (Request.Headers["X-Forwarded-For"] != null)
{
    ip = Request.Headers["X-Forwarded-For"];
    Console.WriteLine(ip + "|X-Forwarded-For");
}
else if (Request.Headers["REMOTE_ADDR"] != null)
{
    ip = Request.Headers["REMOTE_ADDR"];
    Console.WriteLine(ip + "|REMOTE_ADDR");
}

我们处于公司网络之下,因此在本地环境和开发环境中,我们习惯于获取私有IP地址,例如10.X.X.X。

使用此地址,我们总是无法找到客户位置。

真正的问题是,当您将外部/公共ip(190.X.X.X)传递给maxmind时,仅能正常工作。

我们真的需要获取外部/公共ip来为maxmind服务提供输入吗?

3 个答案:

答案 0 :(得分:0)

您正在使用Maxmind提供IP服务,该服务与您的客户的 IP(而不是您的IP)有关。

  • 您要尝试对谁定位?
  • 对于欺诈服务,您要评估谁?

Private IPs被内部网络(家庭和公司/企业,如您的网络)广泛使用,因此它们是唯一的(除了在公共互联网上不可路由之外,等)

答案 1 :(得分:0)

所有地理位置提供商仅在公共IP地址上工作。专用IP地址正在LAN中使用,并且只要不在同一LAN中就可以重新发出。确定地理位置信息没有唯一性。

答案 2 :(得分:0)

您正确使用的是10.xx.xx.xx范围,该范围保留供私人(内部)使用。

您需要做的就是更改代码,以便在进行Maxmind查找之前,将要查找的“ 10” IP替换为针对同一语言环境的“公共” IP。如果您的公司有多个位置,那么您可以创建内部IP的数组/表来公开“区域设置” IP。

例如如果美国洛杉矶的部门使用10.222.xx.xx;美国纽约州则使用10.123.xx.xx地址,然后对这些IP进行简单的Maxmind查找,并使用“等效”公共IP。因此对于10.123.xx.xx(美国纽约州),请查询154.16.85.37。

对于“ 10个IP”,甚至可能根本不需要使用Maxmind。例如。如果您只需要国家代码;然后将其包含在您自己的“ IP 10”查找表/阵列中,并添加前缀为10的IP,而不是从您自己的表中查找Maxmind查找。