C# 在asp.net中检测用户域
如果我有一个通用的公共asp.net网站,我想知道谁在访问我的网站(我知道如何访问),但更重要的是,我想知道用户来自哪家公司(这是一名microsoft员工在查看我的网站,还是一名可口可乐员工在查看我的网站,或者此人正在使用家用电脑查看我的网站)。如何确定计算机的域名?希望这是有意义的C# 在asp.net中检测用户域,c#,asp.net,.net-3.5,C#,Asp.net,.net 3.5,如果我有一个通用的公共asp.net网站,我想知道谁在访问我的网站(我知道如何访问),但更重要的是,我想知道用户来自哪家公司(这是一名microsoft员工在查看我的网站,还是一名可口可乐员工在查看我的网站,或者此人正在使用家用电脑查看我的网站)。如何确定计算机的域名?希望这是有意义的 更新:在大多数公司,我看到公司名称包含为“完整计算机名”或“计算机名、域和工作组设置”中的域值。这正是我希望访问的内容。您不能绝对肯定地做到这一点-它也面临着与类似的问题,尽管您可能取得了一些成功 您可以尝试的是
更新:在大多数公司,我看到公司名称包含为“完整计算机名”或“计算机名、域和工作组设置”中的域值。这正是我希望访问的内容。您不能绝对肯定地做到这一点-它也面临着与类似的问题,尽管您可能取得了一些成功 您可以尝试的是对IP地址进行反向查找,并获取地址的域部分(请参阅前面的链接以获取代码示例) 然而,特别是对于较小的公司,这可能只是解决ISP的域,或者根本无法解决。对于家庭用户来说,几乎可以肯定的是,它只是ISP
你可以尝试的另一件事是在IP地址上做一个WHOIS。这可能会给你一个公司的指示;同样,对于较小的公司来说,这更可能只是一个ISP。您可以使用Request.ServerVariables(“remote\u addr”)来查找从客户端传递给您的ip地址,然后使用它来找出它的来源。不过要提醒一下,ip地址可能会被欺骗,而且您可能只是获取代理服务器的地址,因此这些内容并不准确 在你得到ip地址后,你需要做一个whois查找来找出它来自谁。您可能需要查找whois api
<>也可以考虑通过某种形式的Web日志分析或其他分析工具,以批处理的形式获取相同的信息。因为所有这些信息很可能都存储在web服务器日志中 如果用户没有使用这些凭据登录到您的公共网站,您就无法访问计算机名/域名凭据。如果是这种情况,您可以使用以下方式访问远程登录的用户:
Request.ServerVariables["REMOTE_USER"]
要接近您的要求,唯一的方法是使用第三方软件。Maxmind.com只是一家提供地理定位服务的公司。你可以看到他们提供了一个新的服务
如果用户从公司网络访问您的网站,Maxmind应将该数据作为其数据库的一部分,然后您可以使用该数据库
请记住,组织指的是IP地址(netblock)所有者。因此,如果用户从家中、移动设备或公司网络以外的任何地方访问您的网站(或Maxmind有不正确或不完整的数据),则数据将丢失、误导或完全错误。组织需要足够大,以拥有并注册自己的IP地址块
Google Analytics中也可能提供此信息。如果用户是从工作场所登录的,并且他们在Microsoft工作,我猜他们只能使用工作凭证登录,对吗?