Различия между inet_aton() и gethostbyname() в C?

Я изучаю C и TCP/UDP. Как заголовок... Есть ли разница между inet_aton() и gethostbyname() в C? Насколько я знаю, оба конвертируют IP-адрес из строки в число.


person testermaster    schedule 15.04.2014    source источник


Ответы (2)


gethostbyname() устарел. Вы должны использовать getaddrinfo().

inet_aton() работает только для IPv4.

Кроме того, inet_aton() преобразует только понятие IPv4 (0.0.0.0) в int, getaddrinfo выполняет разрешение DNS.

person blue112    schedule 15.04.2014
comment
Кроме того, getaddrinfo (и старый gethostbyname) также могут искать имена хостов через DNS, а inet_aton работает только с IP-адресами в строковой форме. - person Matti Virkkunen; 15.04.2014

gethostbyname() используется для получения IP-адреса из имени хоста и сохранения их в структуре in_addr. Где inet_aton принимает IP-адрес в точечном формате и преобразует в сетевой порядок байтов. .

person Santhosh Pai    schedule 15.04.2014