Здравствуйте!
В Qt у типа QHostinfo есть функция addresses(), она возвращает список
связанных с этим объектом IP-адресов: QList<QHostAdress>.
Я подключен к Интернету через рутер, имя локального хоста - peter-ir,
оно правильно возвращается функцией QHostInfo::localHostName(),
по нему создаётся объект типа QHostInfo функцией QHostInfo::fromName(),
но addresses() возвращает для него только один адрес, локальный - 127.0.0.1,
а как средствами Qt получить адрес, полученный от рутера - 192.168.0.100?
Или я что-то делаю не так?
Адрес надо получать как-то через DNS?
Пётр.
LinuxForum.Fans
QHostInfo::addresses()
Автор: Peter
4 сообщений
2133 просмотров
DNS и имя локального хоста практически не причем.
Нужно анализировать интерфейсы
text
QList<QNetworkInterface> ifList = QNetworkInterface::allInterfaces();
Ну, а дальше помогут (по порядку)
text
QNetworkInterface::addressEntries ();
QNetworkAddressEntry::ip ();
Благодарю за совет, попробую.
Точнее, для QHositInfo::fromName(QHostInfo::localHostName()) находится адрес 127.0.1.1,
а 127.0.0.1 - это адресс localhost.
Пётр.
Воспользовался функцией 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]
Ещё раз благодарю,
Пётр.
Войдите или зарегистрируйтесь, чтобы ответить.