在C#中使用TcpClient.Connect()进行WHOIS查找是否昂贵?

时间:2010-02-23 21:23:45

标签: c# asp.net scalability tcpclient whois

客户已要求我们根据访问该网站的用户的IP在其ASP.NET网站的主页上执行动态whois查找。

实施将类似于此处描述的内容:

http://www.aspheute.com/english/20000825.asp

但是,我注意到此代码连接到whois.networksolutions.com。我想如果我们在每个页面加载时启动与这个远程服务器的连接,这可能无法很好地扩展。

例如,假设1000个不同的用户访问主页 - 这将导致启动大量连接。

对此有何想法?

3 个答案:

答案 0 :(得分:3)

是的,这可能很耗时。 “昂贵”的数量实际上取决于服务器和远程服务器之间的网络连接以及远程服务器的响应时间。如果您的请求彼此不同,您可以考虑缓存响应(查询最终用户输入的域名不太可能)。更大的问题是,如果远程服务器看到来自单个IP地址的连接太多,则可能会阻止您。

答案 1 :(得分:1)

我可能会问客户端反向DNS是否可行......这样您就可以利用DNS服务器的缓存功能来减少互联网流量。除非您没有内部DNS,否则您将使用ISP的DNS服务器的缓存功能。

然而,whois和DNS之间存在很大差异,因此客户需要了解他们想要的内容。

虽然回答你直接的问题...也许你可以为这些数据创建某种缓存,以减少你需要为浏览网站各个页面的单个主机做的重复搜索次数?

答案 2 :(得分:0)

除了缓存之外,您可能还希望此查找是异步的,因此任何延迟都不会阻止为页面提供服务。