一位客户要求我们根据访问该站点的用户的 IP 在其 ASP.NET 站点的主页上进行动态 whois 查询。
实现将类似于此处描述的内容:
http://www.aspheute.com/english/20000825.asp
但是,我注意到此代码连接到 whois.networksolutions.com。我认为如果我们在每次页面加载时都启动与该远程服务器的连接,这可能无法很好地扩展。
例如,假设有 1000 个不同的用户点击主页 - 这将导致启动大量连接。
对此有什么想法吗?
一位客户要求我们根据访问该站点的用户的 IP 在其 ASP.NET 站点的主页上进行动态 whois 查询。
实现将类似于此处描述的内容:
http://www.aspheute.com/english/20000825.asp
但是,我注意到此代码连接到 whois.networksolutions.com。我认为如果我们在每次页面加载时都启动与该远程服务器的连接,这可能无法很好地扩展。
例如,假设有 1000 个不同的用户点击主页 - 这将导致启动大量连接。
对此有什么想法吗?
是的,这可能很耗时。“昂贵”的数量实际上取决于您的服务器与远程服务器之间的网络连接以及远程服务器的响应时间。如果您的请求彼此没有不同,则可以考虑缓存响应(查询最终用户输入的域不太可能出现这种情况)。一个更大的问题是,如果远程服务器看到来自单个 IP 地址的太多连接,它可能会阻止您。
我可能会问客户反向 DNS 是否可行……这样您就可以利用 DNS 服务器的缓存能力来减少互联网流量。除非您没有内部 DNS,否则您将利用 ISP 的 DNS 服务器的缓存功能。
但是,whois 和 DNS 之间存在很大差异,因此取决于客户他们想要什么。
不过,要回答您的直接问题...也许您可以为此数据创建某种缓存,以减少您必须为浏览网站各个页面的单个主机执行的重复搜索次数?
除了缓存之外,您可能还希望此查找是异步的,因此任何延迟都不会阻碍页面服务。