Это дорого сделать поиск WHOIS с помощью TcpClient.Connect () в C #? - PullRequest
3 голосов
/ 24 февраля 2010

Клиент попросил нас выполнить динамический поиск whois на домашней странице их сайта ASP.NET, основываясь на IP-адресе пользователя, получающего доступ к сайту.

Реализация будет выглядеть примерно так:

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

Однако я заметил, что этот код подключается к whois.networksolutions.com. Я думаю, что это может не очень хорошо масштабироваться, если мы инициируем соединение с этим удаленным сервером при каждой загрузке страницы.

Например, скажем, 1000 разных пользователей посещают домашнюю страницу - это приведет к тому, что будет инициировано много подключений.

Есть мысли по этому поводу?

Ответы [ 3 ]

3 голосов
/ 24 февраля 2010

Да, это может занять много времени. Величина «дороговизны» действительно зависит от сетевого соединения между вашим сервером и удаленным сервером и времени отклика удаленного сервера. Вы можете рассмотреть возможность кэширования ответа, если ваши запросы не отличаются друг от друга (что, скорее всего, не относится к запросам домена, введенных конечными пользователями). Еще большая проблема заключается в том, что удаленный сервер может блокировать вас, если он видит слишком много подключений с одного IP-адреса.

1 голос
/ 24 февраля 2010

Я мог бы спросить клиента, возможен ли обратный DNS ... Таким образом, вы можете использовать возможности кэширования вашего DNS-сервера для уменьшения объема интернет-трафика. Если у вас нет внутреннего DNS, в этом случае вы будете использовать возможности кэширования DNS-сервера вашего интернет-провайдера.

Между whois и DNS существует большая разница, поэтому клиенту остается решать, чего он хочет.

Чтобы ответить на ваш прямой вопрос, хотя ... Может быть, вы могли бы создать какое-то кэширование для этих данных, чтобы уменьшить количество повторных поисков, которые вы должны выполнить для одного хоста, просматривающего различные страницы сайта?

0 голосов
/ 24 февраля 2010

Помимо кэширования, вы также можете захотеть, чтобы этот поиск был асинхронным, поэтому любая задержка не задерживает показ страницы.

...