INET(3)

名前
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);

unsigned long int inet_addr(const char *cp);

unsigned long int inet_network(const char *cp);

char *inet_ntoa(struct in_addr in);

struct in_addr inet_makeaddr(int net, int host);

unsigned long int inet_lnaof(struct in_addr in);

unsigned long int inet_netof(struct in_addr in);

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

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

inet_network() 関数は、ドット付き 10進記法でのアドレス cp から、ネットワーク部をホストバイトオーダで取り出す。 引き数が不当なら -1 が返る。

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

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

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

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

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

    struct in_addr {
    	unsigned long int s_addr;
    }

注意: i80x86 でのホストバイトオーダは LSB first だが、 インターネットで使われるネットワークバイトオーダはは MSB firstである。

準拠
BSD 4.3

関連項目
gethostbyname(3)、getnetent(3)、hosts(5)、networks(5)