如果我有一个通用的公共asp.net网站,我想知道谁在访问我的网站(我知道如何获得),但更重要的是,我想知道用户来自哪家公司(这是一个微软员工查看我的网站,或可口可乐员工查看我的网站,或者这个人使用家用电脑查看我的网站)。如何确定计算机域名?希望这是有道理的。
更新:在大多数公司,我看到公司名称包含为“完整计算机名称”或“计算机名称,域和工作组设置”中的域值。这就是我想要访问的内容。
答案 0 :(得分:3)
你不能绝对肯定地做到这一点 - 虽然你可能会取得一些成功,但它会遇到与getting their computer name类似的问题。
您可以尝试的是对IP地址进行反向查找并获取地址的域部分(请参阅上一个链接以获取代码示例)。
但是,特别是对于规模较小的公司而言,这可能只是解决了ISP的域名,或者根本无法解决。对于家庭用户来说,它几乎肯定只是ISP。
您可以尝试的另一件事是在IP地址上执行WHOIS。这可能会告诉您公司的情况;再次,对于较小的公司,这更有可能只是一个ISP。
答案 1 :(得分:0)
您可以使用Request.ServerVariables(“remote_addr”)查找从客户端传递给您的IP地址,然后使用它来查找它的来源。但是有一个警告,ip地址可能是欺骗性的,而且你可能只是获取代理服务器的地址,所以这些都不准确。
获得IP地址后,您需要进行whois查找以找出它的来源。您可能希望查看here以查找whois api。
另外,您可以考虑通过webtrends或其他一些分析工具运行某种Web日志分析,以批量形式获取相同的信息。因为所有这些信息很可能存储在您的Web服务器日志中。
答案 2 :(得分:0)
如果用户实际使用这些凭据登录到您的公共网站,则无法访问计算机名称/域名凭据。如果是这种情况,您可以使用以下方式访问远程登录用户:
Request.ServerVariables["REMOTE_USER"]
接近您要求的唯一方法是使用第三方软件。 Maxmind.com只是一家拥有Geo定位服务的公司。您可以看到他们提供organisation field in their IP-to-City lookup。
如果用户从公司网络访问您的网站,Maxmind应该将该数据作为其数据库的一部分,然后您可以使用该数据。
请记住,组织是指IP地址(netblock)所有者。因此,如果用户从家中,移动设备或公司网络外的任何地方(或Maxmind有不正确或不完整的数据)访问您的网站,那么数据将丢失,误导或错误。组织需要足够大才能拥有并注册自己的IP地址块。
此信息也可以在Google Analytics中使用。