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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Локальный IP  (Прочитано 6715 раз)
INZER
Гость
« : Август 15, 2016, 16:13 »

Как узнать локальный IP адрес машины?

Код:
QList< QHostAddress > addresses = QHostInfo::fromName(QHostInfo::localHostName()).addresses();

Возвращает только 127.0.0.1

Хотя на eth0 поднят еще один IP....
Заранее спасибо
Записан
Old
Джедай : наставник для всех
*******
Online Online

Сообщений: 4349



Просмотр профиля
« Ответ #1 : Август 15, 2016, 17:33 »

QList<QHostAddress> QHostInfo::addresses() const
Записан
INZER
Гость
« Ответ #2 : Август 16, 2016, 08:38 »

QList<QHostAddress> QHostInfo::addresses() const

В таком случае возвращает пустой QList


PS:  на Windows все хорошо
« Последнее редактирование: Август 16, 2016, 09:20 от INZER » Записан
Old
Джедай : наставник для всех
*******
Online Online

Сообщений: 4349



Просмотр профиля
« Ответ #3 : Август 16, 2016, 10:02 »

В таком случае возвращает пустой QList
Сорри, не то вставил. Улыбающийся

QList<QNetworkInterface> QNetworkInterface::allInterfaces()
QList<QHostAddress> QNetworkInterface::allAddresses()
Записан
Vladimir
Крякер
****
Offline Offline

Сообщений: 305



Просмотр профиля
« Ответ #4 : Август 22, 2016, 00:03 »

Код:
void slGetListLocalIP(QStringList &listIP)
{
    listIP.clear();
    QList<QHostAddress> listAddr = QNetworkInterface::allAddresses();
    for(int i = 0; i < listAddr.size(); i++)
    {
       if(listAddr.at(i).protocol() == QAbstractSocket::IPv4Protocol )
       {
           QString ip = listAddr.at(i).toString();
           listIP.append(ip);
       }
    }
}
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #5 : Август 22, 2016, 08:12 »

Код:
void slGetListLocalIP(QStringList &listIP)
{
    listIP.clear();
    QList<QHostAddress> listAddr = QNetworkInterface::allAddresses();
    for(int i = 0; i < listAddr.size(); i++)
    {
       if(listAddr.at(i).protocol() == QAbstractSocket::IPv4Protocol )
       {
           QString ip = listAddr.at(i).toString();
           listIP.append(ip);
       }
    }
}

Если в get-функции, тогда мне кажется лучше возвращать список, а не через ссылку в параметре заполнять Улыбающийся
Записан

Vladimir
Крякер
****
Offline Offline

Сообщений: 305



Просмотр профиля
« Ответ #6 : Август 23, 2016, 16:22 »

Согласен! Красивее.. но данные нужно было доставать через сигнал, подключенный к этому слоту!
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #7 : Август 23, 2016, 16:52 »

Теперь понятен префикс sl Веселый
Записан

Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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