Russian Qt Forum

Qt => Дополнительные компоненты => Тема начата: Lion от Декабрь 21, 2009, 10:05



Название: Кросплатформенная реализация чтения SRV записей для qt4
Отправлено: Lion от Декабрь 21, 2009, 10:05
В qt3 был класс QDns, который позволял получать SRV записи домена, в qt4 такой функционал пропал. Никто не встречал реализации этой возможности под qt4, желательно в одном классе.


Название: Re: Кросплатформенная реализация чтения SRV записей для qt4
Отправлено: lit-uriy от Декабрь 21, 2009, 14:28
в Qt4 есть Q3Dns, смотри его описание. В том числе и о переносе кода на Qt4


Название: Re: Кросплатформенная реализация чтения SRV записей для qt4
Отправлено: Dendy от Декабрь 21, 2009, 16:50
Пользуйтесь QHostInfo::lookupHost().


Название: Re: Кросплатформенная реализация чтения SRV записей для qt4
Отправлено: Lion от Декабрь 21, 2009, 18:26
Пользуйтесь QHostInfo::lookupHost().
Так я узнаю только IP адрес хоста, а мне нужны SRV записи (IP адрес для конкретного сервиса), про которые в документации ничего нет.


Название: Re: Кросплатформенная реализация чтения SRV записей для qt4
Отправлено: lit-uriy от Декабрь 21, 2009, 18:46
а как ты узнавал у QDNS'а?
код приведи


Название: Re: Кросплатформенная реализация чтения SRV записей для qt4
Отправлено: Lion от Декабрь 21, 2009, 21:08
У Q3Dns был параметр RecordType

Q3Dns::Q3Dns ( const QString & label, RecordType rr = A )

Q3Dns::None   0   No information. This exists only so that Q3Dns can have a default.
Q3Dns::A   1   IPv4 addresses. By far the most common type.
Q3Dns::Aaaa   2   IPv6 addresses. So far mostly unused.
Q3Dns::Mx   3   Mail eXchanger names. Used for mail delivery.
Q3Dns::Srv   4   SeRVer names. Generic record type for finding servers. So far mostly unused.
Q3Dns::Cname   5   Canonical names. Maps from nicknames to the true name (the canonical name) for a host.
Q3Dns::Ptr   6   name PoinTeRs. Maps from IPv4 or IPv6 addresses to hostnames.
Q3Dns::Txt   7   arbitrary TeXT for domains.

и функция, которая возвращала список серверов

Q3ValueList<Server> Q3Dns::servers () const
Returns a list of servers if the record type is Srv. The class Q3Dns::Server contains the following public variables:
QString Q3Dns::Server::name
Q_UINT16 Q3Dns::Server::priority
Q_UINT16 Q3Dns::Server::weight
Q_UINT16 Q3Dns::Server::port

А в qt4 ничего подобного нет (использование модуля qt3support не рассматривается)


Название: Re: Кросплатформенная реализация чтения SRV записей для qt4
Отправлено: lit-uriy от Декабрь 21, 2009, 21:58
в доке написано:
"Qt 3 used its own implementation of the DNS protocol and provided a low-level QDns class."

Если он действительно нужный, то можно попробовать напрямую подключить исходники этого класса к проекту.