Manpages

名 前

inet_ntop − IPv4/IPv6 ア ド レ ス を バ イ ナ リ 形 式 か ら テ キ ス ト 形 式 に 変 換 す る

書 式

#include <arpa/inet.h>

const char *inet_ntop(int af, const void *src,
char *
dst, socklen_t size);

説 明

こ の 関 数 は 、 af ア ド レ ス フ ァ ミ リ ー の ネ ッ ト ワ ー ク ア ド レ ス 構 造 体 src を 文 字 列 に 変 換 す る 。 変 換 結 果 の 文 字 列 は 、 dst が 指 す バ ッ フ ァ ー に コ ピ ー さ れ る 。 dst は NULL で な い ポ イ ン タ ー で な け れ ば な ら な い 。 呼 び 出 し 時 に 、 こ の バ ッ フ ァ ー で 利 用 で き る バ イ ト 数 を 引 き 数 size に 指 定 す る 。

inet_ntop() は inet_ntoa(3) 関 数 を 拡 張 し て 複 数 の ア ド レ ス フ ァ ミ リ ー を 扱 え る よ う に し た も の で あ る 。 今 後 は inet_ntoa(3) は 使 わ ず 、 inet_ntop() を 使 う よ う に す る と 良 い だ ろ う 。 現 在 サ ポ ー ト さ れ て い る ア ド レ ス フ ァ ミ リ ー は 以 下 の 通 り :
AF_INET
こ の 場 合 src は (ネ ッ ト ワ ー ク バ イ ト オ ー ダ ー の ) struct in_addr へ の ポ イ ン タ ー と み な さ れ 、 こ の 構 造 体 の 内 容 が ド ッ ト 区 切 り の 10 進 数 形 式 "ddd.ddd.ddd.ddd" の IPv4 ネ ッ ト ワ ー ク ア ド レ ス に 変 換 さ れ る 。 バ ッ フ ァ ー dst は 少 な く と も INET_ADDRSTRLEN バ イ ト の 長 さ を 持 た な け れ ば な ら な い 。
AF_INET6
こ の 場 合 src は (ネ ッ ト ワ ー ク バ イ ト オ ー ダ ー の ) struct in6_addr へ の ポ イ ン タ ー と み な さ れ 、 こ の 構 造 体 の 内 容 が 、 (こ の ア ド レ ス に 対 し て も っ と も 適 切 な ) IPv6 ネ ッ ト ワ ー ク ア ド レ ス の 表 示 形 式 に 変 換 さ れ る 。 バ ッ フ ァ ー dst は 少 な く と も INET6_ADDRSTRLEN バ イ ト の 長 さ を 持 た な け れ ば な ら な い 。

返 り 値

成 功 す る と 、 inet_ntop() は dst へ の (NULL で な い ) ポ イ ン タ ー を 返 す 。 エ ラ ー が あ っ た 場 合 は NULL を 返 し 、 errno を エ ラ ー を 示 す 値 に 適 切 に 設 定 す る 。

エ ラ ー

EAFNOSUPPORT

af が サ ポ ー ト さ れ て い る ア ド レ ス フ ァ ミ リ ー で な か っ た 。

ENOSPC 変 換 さ れ た ア ド レ ス 文 字 列 の 長 さ が

size で 指 定 さ れ た サ イ ズ を 超 過 し

て し ま う 。

準 拠

POSIX.1−2001. RFC 2553 で は 最 後 の 引 き 数 size の プ ロ ト タ イ プ を size_t 型 と 定 義 し て い る 。 多 く の シ ス テ ム で は RFC 2553 に し た が っ て い る 。 glibc 2.0 と 2.1 で は size_t だ が 、 glibc 2.2 以 降 で は socklen_t と な っ て い る 。

バ グ

AF_INET6 は IPv4 が マ ッ プ さ れ た IPv6 ア ド レ ス を IPv6 形 式 に 変 換 し て し ま う 。

inet_pton(3) を 参 照 。

関 連 項 目

getnameinfo(3), inet(3), inet_pton(3)

こ の 文 書 に つ い て

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