Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

gethostbyname: получение полного списка ipv4 и ipv6 адресов в текстовом представлении - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить количество простых чисел в матрице http://www.cyberforum.ru/cpp-beginners/thread424699.html
Дана матрица A. Определить количество элементов, являющимися простыми числами.(матрица задана rand).
C++ Составить слово из букв A, B, C Здравствуйте. Прошу помочь написать прогу, которая составляет из букв A, B, C слово длины N. В слове не должны рядом стоять одинаковые сочетания букв. Например: ABCABA - составлено правильно.... http://www.cyberforum.ru/cpp-beginners/thread424678.html
Оператор разрешения области видимости C++
Только начинаю изучать ООП. Объясните где и как применяется оператор разрешения области видимости.
C++ Не могу разобраться в условии задачи.
Написать программу, которая находит сумму чисел во введённой строке Замечание Программа рассматривает непрерывные последовательности цифр в строке как числа и обрабатывает их как единое целое. В...
C++ нужно написать программку... http://www.cyberforum.ru/cpp-beginners/thread424636.html
На экран выведено 9 прямоугольников одинакового цвета, которые имитируют карточки с нарисованными на них числами от 1 до 9 (число находится на невидимой стороне карточки). Нажатие клавиши приводит к...
C++ Дайте совет по оптимизации Необходимо оптимизировать реализацию морского боя. Изначально поле представлял в виде символьного массива, естественно длинной 10х10 при этом каждое обращение к элементу массива (х,у)... подробнее

Показать сообщение отдельно
Damaks
18 / 10 / 1
Регистрация: 02.09.2010
Сообщений: 235

gethostbyname: получение полного списка ipv4 и ipv6 адресов в текстовом представлении - C++

08.01.2012, 22:31. Просмотров 1784. Ответов 4
Метки (Все метки)

Как-то недоходчиво написано в манах как работать с этой функцией.
Я передаю в неё днс, она возвращает заполненную структуру hostent, которая пояснена типо вот так:
C++
1
2
3
4
5
6
7
struct hostent {
       char    *h_name;        // официальное имя машины
       char    **h_aliases;    // список псевдонимов
       int     h_addrtype;      // тип адреса машины
       int     h_length;         // длина адреса
       char    **h_addr_list;  // список адресов
}
Я понял что она возвращает список адресов, т.е. несколько адресов.
1) Далее как определить, сколько адресов она вернула?
2) Далее если в списке ipv4 и ipv6 адреса, какое значение возвращает h_length? По логике h_length должна также содержать список размеров, но содержет только одно значение... не понятно
3) Мне в итоге просто нужно получить основной (по всей видимости первый в списке) ipv4 и ipv6 адрес в текстовом представлении, как это сделать?

Вот наброски, помогите дописать
C++
1
2
3
4
5
6
struct hostent *hep;
struct in_addr **addr_list;
if((hep = gethostbyname("ipv6.google.com")) != NULL) {
     addr_list = (struct in_addr **)hep->h_addr_list;
     printf("ADDR: %s\n", inet_ntoa(*addr_list[0]));
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru