Форум программистов, компьютерный форум 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 при этом каждое обращение к элементу массива (х,у)... подробнее

Показать сообщение отдельно
vorob
6 / 6 / 3
Регистрация: 07.01.2012
Сообщений: 18
09.01.2012, 02:10
Ну как-то так пожалуй:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <netdb.h> 
int main(){
    char host[] = "jradio.org";
    int no_ipv4=1, no_ipv6=1;
    int countip=0;
    hostent * ipv4 = gethostbyname(host);
    in_addr *address;
    if (ipv4==NULL){
        no_ipv4 = 0;
    }else{
        printf("IPV4:\n");
        for (int i = 0; (address = ((in_addr * )ipv4->h_addr_list[i])) != NULL; i++) { 
            printf("\t%s\n", inet_ntoa(* address));
            countip++;
        }
    }
    
    hostent * ipv6 = gethostbyname2(host, AF_INET6);
    if (ipv6==NULL){
        no_ipv6 = 0;
    }else{
        printf("IPV6:\n");
        for (int i = 0; (address = ((in_addr * )ipv6->h_addr_list[i])) != NULL; i++) { 
            char straddr[50];
            inet_ntop(AF_INET6, address, straddr, sizeof(straddr));
            printf("\t%s\n", straddr );
            countip++;
        }
    }
    
    if(no_ipv6 == 0 && no_ipv4 == 0){
        printf("Для домена %s не найдено ip адресов\n", host);
        return 0;
    }
    
    if(no_ipv6 == 0)
        printf("Для домена %s не найдено ipV6 адресов\n", host);
        
    if(no_ipv4 == 0)
        printf("Для домена %s не найдено ipV4 адресов\n", host);
        
    printf("Всего для домена %s найдено %i адресов\n", host, countip);
    
    return 0;
}
Цитата Сообщение от Damaks Посмотреть сообщение
Мне в итоге просто нужно получить основной (по всей видимости первый в списке)
Для балансировки нагрузки в службе DNS для одного имени типа "www.example.com" настраивается несколько IP-адресов, а также опция "round robin", которая устанавливает порядок выдачи адресов для DNS-запросов по кругу. В результате, каждый клиент, по мере выдачи запросов на одно имя на DNS-сервер, будет получать разные IP-адреса, а значит, подключаться к разным серверам.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru