INET

Section: Linux Programmer's Manual (3)
Updated: 2007-07-26
Index JM Home Page roff page
 

名前

inet_aton, inet_addr, inet_network, inet_ntoa, inet_makeaddr, inet_lnaof, inet_netof - インターネットアドレス操作ルーチン  

書式

#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

int inet_aton(const char *cp, struct in_addr *inp);

in_addr_t inet_addr(const char *cp);

in_addr_t inet_network(const char *cp);

char *inet_ntoa(struct in_addr in);

struct in_addr inet_makeaddr(int net, int host);

in_addr_t inet_lnaof(struct in_addr in);

in_addr_t inet_netof(struct in_addr in);

glibc 向けの機能検査マクロの要件 (feature_test_macros(7) 参照):

inet_aton(), inet_ntoa(): _BSD_SOURCE || _SVID_SOURCE  

説明

inet_aton() は、インターネットホストのアドレス cp を 「数値とドット」記法からバイナリ値へ変換する。 結果は inp が指している構造体に代入される。 返り値は、指定したアドレスが正当ならば 0 以外、不当なら 0 である。

inet_addr() 関数は、インターネットホストのアドレス cp を 「数値とドット」記法からネットワークバイトオーダでのバイナリ値へ 変換して返す。引き数が不当ならば INADDR_NONE (普通は -1) が返る。 この関数は直前で説明した inet_aton() に対して、時代遅れなインターフェースである。なぜなら -1 は正当な アドレス (255.255.255.255) だからである。 inet_aton() の方が、エラーが返ることをすっきりと示すことができる。

inet_network() 関数は、 「数値とドット」記法の文字列である cp から、 インターネットアドレスとして使用できる数値を、 ホストバイトオーダーで取り出す。 引き数が不当なら -1 が返される。

inet_ntoa() 関数は、 ネットワークバイトオーダでのインターネットホストアドレス inを 「数値とドット」記法へ変換する。文字列は 静的に割当てられたバッファへ返るので、 もう 1回この関数を呼ぶと文字列は上書きされる。

inet_makeaddr() 関数は、ネットワーク部 net と、 そのネットワークの中でのホストのローカルアドレス host をくっつけて、 インターネットホストのアドレスを作る。返り値はネットワークバイトオーダ、 引き数 hostnet はホストバイトオーダである。

inet_lnaof() 関数は、インターネットアドレス in のローカルホスト部を返す。この返り値はホストバイトオーダである。

inet_netof() 関数は、インターネットアドレス in のネットワーク部を返す。この返り値はホストバイトオーダである。

inet_ntoa(), inet_makeaddr(), inet_lnaof(), inet_netof() で使用する構造体 in_addr は、netinet/in.h で次のように定義されている:

typedef uint32_t in_addr_t;

struct in_addr {
    in_addr_t s_addr;
};

i80x86 でのホストバイトオーダは LSB first (リトルエンディアン) だが、 インターネットで使われるネットワークバイトオーダは MSB first (ビッグエンディアン) である点に注意すること。  

準拠

4.3BSD. inet_addr(), inet_aton(), inet_ntoa() は POSIX.1-2001 で規定されている。  

注意

アドレスに対して「数値とドット」記法を用いる場合、 それぞれの数値は先頭に 0 があれば 8 進数と解釈され、 先頭に 0x があれば 16 進数と解釈される点に注意すること。 例えば、inet_aton("226.000.000.037", &t)226.0.0.37 ではなく 226.0.0.31 と解釈される。  

関連項目

gethostbyname(3), getnetent(3), inet_ntop(3), inet_pton(3), hosts(5), networks(5)


 

Index

名前
書式
説明
準拠
注意
関連項目

This document was created by man2html, using the manual pages.
Time: 04:31:46 GMT, November 19, 2007