Man page - getipnodebyname(3)

Packages contains this manual

Available languages:

en fr es pl ja ru ro

Manual

GETIPNODEBYNAME

名 前
書 式
説 明
getipnodebyname() の 引 数
getipnodebyaddr() の 引 数
返 り 値
準 拠
注 意
関 連 項 目
こ の 文 書 に つ い て

名 前

getipnodebyname, getipnodebyaddr, freehostent - ネ ッ ト ワ ー ク ホ ス ト の 名 前 と ア ド レ ス の 取 得

書 式

#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>

struct hostent *getipnodebyname(const char * name , int af ,
int
flags , int * error_num );

struct hostent *getipnodebyaddr(const void * addr , size_t len ,
int
af , int * error_num );

void freehostent(struct hostent * ip );

説 明

こ れ ら の 関 数 は 非 推 奨 で あ る (glibc で は 利 用 で き な い )。 代 わ り に getaddrinfo (3) と getnameinfo (3) を 使 う こ と 。

getipnodebyname () と getipnodebyaddr () は 、 ネ ッ ト ワ ー ク ホ ス ト の 名 前 と ア ド レ ス を 返 す 。 こ れ ら の 関 数 は 、 以 下 の 構 造 体 へ の ポ イ ン タ ー を 返 す 。

struct hostent {
char *h_name;
char **h_aliases;
int h_addrtype;
int h_length;
char **h_addr_list;
};

こ れ ら の 関 数 は 、 IPv4 ネ ッ ト ワ ー ク ア ド レ ス フ ァ ミ リ ー に し か ア ク セ ス で き な い gethostbyname (3) や gethostbyaddr (3) を 置 き 換 え る も の で あ る 。 getipnodebyname () 関 数 と getipnodebyaddr () 関 数 は 複 数 の ネ ッ ト ワ ー ク ア ド レ ス フ ァ ミ リ ー に ア ク セ ス 可 能 に な っ て い る 。

こ れ ら の 関 数 は 、 gethostby の 関 数 群 と 異 な り 、 動 的 に 割 り 当 て ら れ た メ モ リ ー へ の ポ イ ン タ ー を 返 す 。 呼 び 出 し 元 が こ れ ら の hostent 構 造 体 を 必 要 と し な く な っ た 後 は 、 freehostent () 関 数 を 用 い れ ば 動 的 な 割 り 当 て メ モ リ ー を 解 放 で き る 。

getipnodebyname() の 引 数

getipnodebyname () 関 数 は name 引 数 で 指 定 さ れ た ホ ス ト の ネ ッ ト ワ ー ク ア ド レ ス を 引 く 。 af 引 数 に は 以 下 の 値 の い ず れ か を 指 定 す る 。
AF_INET

name 引 数 は 、 ド ッ ト で 4 つ に 区 切 ら れ た IPv4 ア ド レ ス か 、 IPv4 ネ ッ ト ワ ー ク ホ ス ト の 名 前 へ の ポ イ ン タ ー で あ る 。

AF_INET6

name 引 数 は 、 16 進 の IPv6 ア ド レ ス か 、 IPv6 ネ ッ ト ワ ー ク ホ ス ト の 名 前 へ の ポ イ ン タ ー で あ る 。

flags パ ラ メ ー タ ー に は 追 加 の オ プ シ ョ ン を 指 定 す る 。 複 数 の フ ラ グ を 指 定 す る に は 、 そ れ ら の ビ ッ ト 単 位 の OR を と っ て 指 定 す れ ば よ い 。 オ プ シ ョ ン を ひ と つ も 指 定 し た く な い と き に は 、 flags に 0 を 設 定 す る 必 要 が あ る 。
AI_V4MAPPED

こ の フ ラ グ は AF_INET6 と 共 に 用 い ら れ 、 IPv6 ア ド レ ス の 代 わ り に IPv4 ア ド レ ス を 問 い 合 わ せ る 。 問 い 合 わ せ る IPv4 ア ド レ ス は IPv6 ア ド レ ス に マ ッ プ さ れ る 。

AI_ALL

こ の フ ラ グ は AI_V4MAPPED と 共 に 用 い ら れ 、 IPv4 ア ド レ ス と IPv6 ア ド レ ス の 両 方 を 問 い 合 わ せ る 。 見 つ か っ た IPv4 ア ド レ ス は 、 す べ て IPv6 ア ド レ ス に マ ッ プ さ れ る 。

AI_ADDRCONFIG

こ の フ ラ グ は AF_INET6 と 共 に 用 い ら れ 、 IPv6 が 割 り 当 て ら れ た ネ ッ ト ワ ー ク イ ン タ ー フ ェ ー ス が シ ス テ ム に ひ と つ も な け れ ば IPv6 ア ド レ ス の 問 い 合 わ せ を 行 わ ず 、 IPv4 が 割 り 当 て ら れ た ネ ッ ト ワ ー ク イ ン タ ー フ ェ ー ス が シ ス テ ム に ひ と つ も な け れ ば IPv4 ア ド レ ス の 問 い 合 わ せ を 行 わ な い よ う に 要 求 す る 。 こ の フ ラ グ は 単 独 で も 、 あ る い は AI_V4MAPPED フ ラ グ と 共 に で も 用 い る こ と が で き る 。

AI_DEFAULT

こ の フ ラ グ は (AI_ADDRCONFIG | AI_V4MAPPED) と 等 価 で あ る 。

getipnodebyaddr() の 引 数

getipnodebyaddr () 関 数 は 、 ネ ッ ト ワ ー ク ア ド レ ス が addr 引 数 で 指 定 さ れ た ホ ス ト の 名 前 を 引 く 。 af 引 数 に は 以 下 の 値 の い ず れ か を 指 定 す る 。
AF_INET

addr 引 数 は struct in_addr へ の ポ イ ン タ ー で あ り 、 len 引 数 は sizeof(struct in_addr) に 設 定 し な け れ ば な ら な い 。

AF_INET6

addr 引 数 は struct in6_addr へ の ポ イ ン タ ー で あ り 、 len 引 数 は sizeof(struct in6_addr) に 設 定 し な け れ ば な ら な い 。

返 り 値

エ ラ ー が 起 こ る と NULL が 返 さ れ 、 error_num に 以 下 に リ ス ト さ れ た エ ラ ー コ ー ド の い ず れ か が 設 定 さ れ る 。
HOST_NOT_FOUND

ホ ス ト 名 ま た は ネ ッ ト ワ ー ク ア ド レ ス が 見 つ か ら な か っ た 。

NO_ADDRESS

ド メ イ ン ネ ー ム サ ー バ ー は そ の ネ ッ ト ワ ー ク ア ド レ ス ま た は ネ ッ ト ワ ー ク 名 を 認 識 し た が 、 返 事 が 返 っ て こ な か っ た 。 原 因 と し て は 、 例 え ば IPv4 ア ド レ ス し か 持 た な い ネ ッ ト ワ ー ク ホ ス ト に 対 し て IPv6 の 情 報 の 問 い 合 わ せ が 行 わ れ た (お よ び そ の 逆 ) な ど が 考 え ら れ る 。

NO_RECOVERY

ド メ イ ン ネ ー ム サ ー バ ー か ら 恒 久 的 な 失 敗 (permanent failure) を 意 味 す る 返 事 が 返 さ れ た 。

TRY_AGAIN

ネ ー ム サ ー バ ー か ら 一 時 的 な 失 敗 (temporary failure) を 意 味 す る 返 事 が 返 さ れ た 。 次 に は も う ち ょ っ と 運 が 必 要 か も 。

問 い 合 わ せ に 成 功 す る と 、 hostent 構 造 体 へ の ポ イ ン タ ー が 返 さ れ る 。 こ の 構 造 体 は 以 下 の フ ィ ー ル ド か ら な る 。

h_name

こ れ は こ の ネ ッ ト ワ ー ク ホ ス ト の オ フ ィ シ ャ ル な 名 前 で あ る 。

h_aliases

こ れ は 、 そ の ホ ス ト の オ フ ィ シ ャ ル で な い 別 名 へ の ポ イ ン タ ー の 配 列 で あ る 。 配 列 は ヌ ル ポ イ ン タ ー で 終 端 す る 。

h_addrtype

こ れ は getipnodebyname () ま た は getipnodebyaddr () に 与 え ら れ た af 引 数 の コ ピ ー で あ る 。 af 引 数 が AF_INET な ら h_addrtype は 常 に AF_INET に な り 、 af 引 数 が AF_INET6 な ら h_addrtype も 常 に AF_INET6 に な る 。

h_length

こ の フ ィ ー ル ド は 、 h_addrtype AF_INET な ら sizeof(struct in_addr) に 、 h_addrtype AF_INET6 な ら sizeof(struct in6_addr) に 設 定 さ れ る 。

h_addr_list

こ れ は ひ と つ 以 上 の ポ イ ン タ ー の 配 列 で 、 そ れ ぞ れ の ポ イ ン タ ー は 、 そ の ネ ッ ト ワ ー ク ホ ス ト に 対 応 す る ネ ッ ト ワ ー ク ア ド レ ス 構 造 体 を 指 す 。 こ の 配 列 は ヌ ル ポ イ ン タ ー で 終 端 す る 。

準 拠

RFC 2553.

注 意

こ れ ら の 関 数 は glibc 2.1.91-95 に 存 在 し た が 、 再 び 削 除 さ れ た 。 い く つ か の UNIX 風 シ ス テ ム は こ れ ら の 関 数 に 対 応 し て い る が 、 こ れ ら の 関 数 は 全 て 推 奨 さ れ な い 。

関 連 項 目

getaddrinfo (3), getnameinfo (3), inet_ntop (3), inet_pton (3)

こ の 文 書 に つ い て

こ の man ペ ー ジ は Linux man-pages プ ロ ジ ェ ク ト の リ リ ー ス 5.10 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は https://www.kernel.org/doc/man-pages/ に 書 か れ て い る 。