Шрифт:
Функция преобразует адрес интернет-узла в строку формата четверки чисел с точками. В случае ошибки она возвращает -1, но в стандарте POSIX не определены конкретные ошибки. Еще одна новая функция, которую вы примените, —
Эта функция записывает имя текущего узла в строку, заданную параметром
Выполните упражнение 15.5.
Данная программа getname.c получает сведения о компьютере.
1. Как обычно, вставьте соответствующие заголовочные файлы и объявите переменные:
2. Присвойте переменной
3. Вызовите функцию gethostbyname и сообщите об ошибке, если никакая информация не найдена:
4. Отобразите имя узла и любые псевдонимы, которые у него могут быть:
5. Если запрашиваемый узел не является IP-узлом, сообщите об этом и завершите выполнение:
6. В противном случае выведите IP-адрес (адреса):
Для определения узла по заданному IP-адресу можно применить функцию
Как это работает
Программа getname вызывает функцию gethostbyname для извлечения сведений об узле из базы данных сетевых узлов. Она выводит имя компьютера, его псевдонимы (другие имена, под которыми известен компьютер) и IP-адреса, которые он использует в своих сетевых интерфейсах. На одной из машин авторов выполнение примера и указание в качестве аргумента имени tilde привело к выводу двух интерфейсов: сети Ethernet и модемной линии связи.
Когда используется имя узла
Теперь вы можете изменить свою программу-клиента для соединения с любым именованным узлом сети. Вместо подключения к серверу из вашего примера, вы соединитесь со стандартным сервисом и сможете извлечь номер порта.