LinuxForum.Fans
Тема

QHostInfo::addresses()

Автор: Peter 4 сообщений 2133 просмотров
#200491

Здравствуйте!

В Qt у типа QHostinfo есть функция addresses(), она возвращает список
связанных с этим объектом IP-адресов: QList<QHostAdress>.
Я подключен к Интернету через рутер, имя локального хоста - peter-ir,
оно правильно возвращается функцией QHostInfo::localHostName(),
по нему создаётся объект типа QHostInfo функцией QHostInfo::fromName(),
но addresses() возвращает для него только один адрес, локальный - 127.0.0.1,
а как средствами Qt получить адрес, полученный от рутера - 192.168.0.100?

Или я что-то делаю не так?


Адрес надо получать как-то через DNS?

Пётр.

#200675

DNS и имя локального хоста практически не причем.
Нужно анализировать интерфейсы

text

QList<QNetworkInterface> ifList = QNetworkInterface::allInterfaces();

Ну, а дальше помогут (по порядку)

text

QNetworkInterface::addressEntries ();
QNetworkAddressEntry::ip ();
#200799

Благодарю за совет, попробую.

Точнее, для QHositInfo::fromName(QHostInfo::localHostName()) находится адрес 127.0.1.1,
а 127.0.0.1 - это адресс localhost.

Пётр.

#200839

Воспользовался функцией QList<QHostAddress> QNetworkInterface::allAddresses()
она вернула список из четырёх адресов, ниже они по порядку.
[console]
j=0 IP=127.0.0.1 j=1 IP=0:0:0:0:0:0:0:1 j=2 IP=192.168.0.100 j=3 IP=FE80:0:0:0:225:22FF:FEA3:1AA7
[/console]

Ещё раз благодарю,

Пётр.

Войдите или зарегистрируйтесь, чтобы ответить.