Модераторы: feodorv
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> IdDNSResolver, Подскажите как этим пользоватся 
:(
    Опции темы
Wzhik
Дата 30.11.2007, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 14.11.2007

Репутация: нет
Всего: нет



Подскажите как этим компонентом из имеющегося имени хоста получить его айпишник. Или может другими способами узнать можно. Желательно применительно к C++ Builder

Это сообщение отредактировал(а) Wzhik - 30.11.2007, 17:08
PM MAIL   Вверх
fish9370
Дата 9.12.2007, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: нет
Всего: 1



Цитата(Wzhik @ 30.11.2007,  17:08)
Или может другими способами узнать можно. Желательно применительно к C++ Builder

вообще грамотно говорить разрешить ip от англ. resolve..
Код

#include <winsock2.h>
SOCKET sClient;
struct sockaddr_in server;
struct hostent *host = NULL;

...

// Создание сокета
sClient = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (sClient == INVALID_SOCKET)
{
    log.message("Can't create socket");
    return 1;
}
// Заполнение структуры с адресом сервера и номером порта
server.sin_family = AF_INET;
server.sin_port = htons(nPort);
server.sin_addr.s_addr = inet_addr(szServerName);

// Если указано имя, то перевод символьного адреса сервера в IP
if (server.sin_addr.s_addr == INADDR_NONE)
{
    host = gethostbyname(szServerName);
    if (host == NULL)
    {
        log.message("Unable to resolve server");
        return 1;
    }
    CopyMemory(&server.sin_addr, host->h_addr_list[0],
        host->h_length);
}


ключевой здесь является строка:
Код

host = gethostbyname(szServerName);
и поскольку одному и тому же доменному имени может принадлежать несколько IP фунция возвращает список.. на практике достаточно и одного как в данном примере:
Код

CopyMemory(&server.sin_addr, host->h_addr_list[0],
        host->h_length);


Это сообщение отредактировал(а) fish9370 - 9.12.2007, 18:18


--------------------
undefined
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0602 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.