Russian Qt Forum
Май 07, 2024, 21:18 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Нужно получать whois доменов.  (Прочитано 6007 раз)
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« : Июнь 11, 2009, 16:37 »

Не подскажет ли кто библиотеку или компонент для получения whois по домену.

типа

Цитировать
whois prog.org.ru
% By submitting a query to RIPN's Whois Service
% you agree to abide by the following terms of use:
% http://www.ripn.net/about/servpol.html#3.2 (in Russian)
% http://www.ripn.net/about/en/servpol.html#3.2 (in English).

domain:  PROG.ORG.RU
type:    CORPORATE
Записан
mugabe
Гость
« Ответ #1 : Июнь 15, 2009, 09:49 »

Их не существует по причине отсутствия необходимости в них Улыбающийся

Код на красоту не претендует, т.к. писался на скорую руку. Но он рабочий и суть, думаю, ясна Улыбающийся

Код
C++ (Qt)
void MainWindow::on_pushButton_clicked()
{
   QString domain = ui->lineEdit->text();
   QStringList domain_s = domain.split(".");
   QString zone = domain_s.at(domain_s.count() - 1);
 
   QString whois_server = QString("%1.whois-servers.net").arg(zone);
 
   tcpSocket = new QTcpSocket(this);
   connect(tcpSocket, SIGNAL(readyRead()), this, SLOT(readWhois()));
   connect(tcpSocket, SIGNAL(connected()), this, SLOT(connectedWhois()));
   tcpSocket->connectToHost(whois_server, 43);
}
 
 
void MainWindow::readWhois()
{
   if (tcpSocket->bytesAvailable() > 0) {
       QString s = tcpSocket->readAll();
       ui->plainTextEdit->setPlainText(s);
   }
}
 
void MainWindow::connectedWhois()
{
   QString wr = QString("%1\n").arg(ui->lineEdit->text());
   tcpSocket->write(wr.toStdString().c_str());
}
« Последнее редактирование: Июнь 15, 2009, 09:51 от mugabe » Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #2 : Июнь 15, 2009, 10:37 »

ооо - спасибо - обязательно запробую
Записан
SABROG
Гость
« Ответ #3 : Июнь 25, 2009, 08:55 »

Код
C++ (Qt)
   tcpSocket->write(wr.toStdString().c_str());
}

Красота красотой, но уже третий раз встречаю подобную запись, почему не так?

Код
C++ (Qt)
   tcpSocket->write(wr.toAscii());
 

Тем более, что на некоторых сборках Qt - toStdString() может не работать:

Цитировать
This operator is only available if Qt is configured with STL compatibility enabled.
Записан
mugabe
Гость
« Ответ #4 : Июнь 26, 2009, 12:55 »

Потому что писал на скорую руку, всех методов QString не знаю, потребности получить char* в Qt пока что не возникало. Что первое нашел, то и сделал Улыбающийся
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #5 : Июль 04, 2009, 19:21 »

Их не существует по причине отсутствия необходимости в них Улыбающийся

Есть модули для перла -  libnet-xwhois-perl например.
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #6 : Июль 05, 2009, 14:26 »

Не под другие языки не интересно. Интересно на Qt или на C++. Улыбающийся
Под php у меня целый скрипт - разные домены разные whois сервера. Буду его на Qt переводить.
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #7 : Июль 09, 2009, 11:59 »

Написал программку, к сожалению получает данные о домене не стабильно, через раз. Возможно у whois серверов есть ограничения на количество запросов. К сожалению снифера нет под рукой, что бы глянуть куда стандартная whois лазает.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.115 секунд. Запросов: 23.