EN JA
GETNETENT(3)
GETNETENT(3) FreeBSD Library Functions Manual GETNETENT(3)

名称

getnetent, getnetbyaddr, getnetbyname, setnetent, endnetentネットワークエントリを取得する

ライブラリ

Standard C Library (libc, -lc)

書式

#include < netdb.h>

struct netent *
getnetent( void);

struct netent *
getnetbyname( const char *name);

struct netent *
getnetbyaddr( uint32_t net, int type);

void
setnetent( int stayopen);

void
endnetent( void);

解説

getnetent(), getnetbyname() と getnetbyaddr() 関数は、それぞれインターネットネットワークを記述している次の構造があるオブジェクトへのポインタを返します。この構造体は、ネットワークデータベース /etc/networks の行から切り離されたフィールドであるネームサーバ named(8) から得られる情報か、または yp(8) システムによって供給されるエントリのいずれかを含んでいます。検索の指令は、 nsswitch.conf(5) の `ネットワーク' エントリによって制御されます。

struct  netent { 
        char            *n_name;        /* ネットワークの正式名 */ 
        char            **n_aliases;    /* 別名リスト */ 
        int             n_addrtype;     /* ネット番号のタイプ */ 
 uint32_t n_net;  /* ネット番号 */ 
};

この構造体のメンバは、次の通りです:

n_name
ネットワークの正式名。
n_aliases
ネットワークのための代替の名前の 0 で終了するリスト。
n_addrtype
返されるネットワーク番号のタイプ。現在、AF_INET のみ。
n_net
ネットワーク番号。ネットワーク番号は、マシンのバイト順で返されます。

getnetent() 関数は、必要ならば、ファイルをオープンして、ファイルの次の行を読み込みます。

setnetent() 関数は、ファイルをオープンして、リワインドします。 stayopen フラグが 0 でないなら、ネットデータベースは、 getnetbyname() または getnetbyaddr() への各呼び出しの後に、クローズされません。

endnetent() 関数は、ファイルをクローズします。

getnetbyname() と getnetbyaddr() 関数は、マッチするネット名またはネットアドレスが一致し、タイプが見つかるか、または EOF に到達するまで、ファイルの最初から順次検索します。 type 引数は、 AF_INET でなければなりません。ネットワーク番号は、ホストの (バイト) 順で供給されます。

関連ファイル

/etc/networks
/etc/nsswitch.conf
/etc/resolv.conf

診断

EOF であるか、またはエラーであるなら、NULL ポインタが返されます。

関連項目

networks(5)

RFC 1101

歴史

getnetent(), getnetbyaddr(), getnetbyname(), setnetent() と endnetent() 関数は、 4.2BSD で登場しました。

バグ

これらの関数によって使用されるデータ空間は、スレッド特有です ;将来の使用のためにデータが要求されるなら、これらの関数へのあらゆる後の呼び出しで、それを上書きする前に、コピーされるべきです。現在、インターネットネットワーク番号だけが解釈されます。高々 32 ビットに適合するネットワーク番号を予想することは、おそらく認識の甘いことです。
June 4, 1993 FreeBSD