hostent
От: nacgool Украина  
Дата: 03.02.06 14:01
Оценка:
HI All!
Возникла такая проблемка при програмировании сокетов.
Необходимо получать адресс по имени хоста.
Естественно для этой цели использую функцию
struct hostent *gethostbyname(const char *name);
Даная функция возвращает указатель на такую структуру

struct hostent {
char *h_name;
char **h_aliases;
int h_addrtype;
int h_length;
char **h_addr_list;
};
#define h_addr h_addr_list[0]

Если верить этому
h_addr_list. Массив, содержащий адреса всех сетевых интерфейсов хоста. Завершается нулём. Обратите внимание, что байты каждого адреса хранятся с сетевым порядке, поэтому htonl вызывать не нужно.

Значит в h_addr_list[0] будет лежать искомый адресс.
Вопрос Как его оттудова извлечь?
Как, в каком формате он там хранится?
Или может так случиться что адрес получен те будет?

Получаю нормальный указатель на эту структуру, а в этом поле какойто мусор. Уже пытался по разному его интерпретировать и преобразовывать но ничего путного не получилось.
Если можете подскажите.
Заранее благодарю.
Re: hostent
От: aik Австралия  
Дата: 03.02.06 14:06
Оценка:
Здравствуйте, nacgool, Вы писали:

N>Возникла такая проблемка при програмировании сокетов.

N>Необходимо получать адресс по имени хоста.
N>Естественно для этой цели использую функцию
N> struct hostent *gethostbyname(const char *name);

Использовать так: здесь
Автор: aik
Дата: 04.07.05


N>Или может так случиться что адрес получен те будет?


Запросто.
Re[2]: hostent
От: nacgool Украина  
Дата: 03.02.06 15:05
Оценка:
Здравствуйте, aik, Вы писали:

aik>Здравствуйте, nacgool, Вы писали:


N>>Возникла такая проблемка при програмировании сокетов.

N>>Необходимо получать адресс по имени хоста.
N>>Естественно для этой цели использую функцию
N>> struct hostent *gethostbyname(const char *name);

aik>Использовать так: здесь
Автор: aik
Дата: 04.07.05


Спасибо. Помогло.


N>>Или может так случиться что адрес получен те будет?


aik>Запросто.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.