インターネットホスト名からアドレスへの割り当ては、次のように hostent 構造体で示されます。
struct hostent { char *h_name; /* ホストの正式名称 */ char **h_aliases; /* 別名リスト */ int h_addrtype; /* ホストアドレスのタイプ (AF_INET6 など) */ int h_length; /* アドレスの長さ */ char **h_addr_list; /* NULL で終わるアドレスのリスト */ }; /* 最初のアドレス、ネットワークバイトオーダー */ #define h_addr h_addr_list[0]
getipnodebyname(3SOCKET) は、インターネットホスト名を hostent 構造体に割り当てます。getipnodebyaddr(3SOCKET) は、インターネットホストアドレスを hostent 構造体に割り当てます。freehostent(3SOCKET) は、hostent 構造体のメモリーを解放します。inet_ntop(3SOCKET) は、インターネットホストアドレスを表示可能な文字列に割り当てます。
このルーチンは、ホストの名前、その別名、アドレスタイプ (アドレスファミリ)、および NULL で終わる可変長アドレスのリストを含む hostent 構造体を返します。このアドレスリストが必要なのは、ホストが多くのアドレスを持つことができるためです。h_addr 定義は下位互換性のためであり、この定義は hostent 構造体のアドレスリストの最初のアドレスです。