doc/ja_JP.eucJP/man/man3/ethers.3
Jun Kuriyama d1534953b1 Change $Id$s to local id %Id%s.
Do not begin a line with single quote character.

Submitted by:	Kazuo Horikawa <k-horik@yk.rim.or.jp>
1999-12-11 00:51:14 +00:00

196 lines
5 KiB
Groff

.\" Copyright (c) 1995
.\" Bill Paul <wpaul@ctr.columbia.edu>. All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by Bill Paul.
.\" 4. Neither the name of the author nor the names of any co-contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY Bill Paul AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %Id: ethers.3,v 1.7 1997/02/22 15:00:05 peter Exp %
.\"
.Dd April 12, 1995
.Dt ETHERS 3
.Os FreeBSD 2.1
.Sh 名称
.Nm ethers ,
.Nm ether_line ,
.Nm ether_aton ,
.Nm ether_ntoa ,
.Nm ether_ntohost ,
.Nm ether_hostton
.Nd イーサネットアドレス変換およびルックアップのルーチン
.Sh 書式
.Fd #include <sys/types.h>
.Fd #include <sys/socket.h>
.Fd #include <net/ethernet.h>
.Ft int
.Fn ether_line "char *l" "struct ether_addr *e" "char *hostname"
.Ft struct ether_addr *
.Fn ether_aton "char *a"
.Ft char *
.Fn ether_ntoa "struct ether_addr *n"
.Ft int
.Fn ether_ntohost "char *hostname" "struct ether_addr *e"
.Ft int
.Fn ether_hostton "char *hostname" "struct ether_addr *e"
.Sh 解説
これらの関数は、
.Ar ether_addr
構造を使用してイーサネットアドレスに作用します。
この構造はヘッダファイル
.Aq Pa netinet/if_ether.h
に定義されます。
.Bd -literal -offset indent
/*
* イーサネット(MAC)アドレスにあるバイト数
*/
#define ETHER_ADDR_LEN 6
/*
* 48 ビットのイーサネットアドレスの構造
*/
struct ether_addr {
u_char octet[ETHER_ADDR_LEN];
};
.Ed
.Pp
関数
.Fn ether_line
は、
.Xr ethers 5
形式の
.Tn ASCII
ストリングである
.Ar l
を走査し、
ストリング内に指定されたイーサネットアドレスに
.Ar e
を設定し、ホスト名に
.Ar h
を設定します。この関数は、
.Pa /etc/ethers
の行をそのコンポーネントのパーツにパースするのに使用されます。
.Pp
.Fn ether_aton
関数は、イーサネットアドレスの
.Tn ASCII
表現を
.Ar ether_addr
構造に
変換します。同様に、
.Fn ether_ntoa
は、
.Ar ether_addr
として指定された
イーサネットアドレスを
.Tn ASCII
ストリングに変換します。
.Pp
.Fn ether_ntohost
関数と
.Fn ether_hostton
関数は、イーサネットアドレスを、
.Pa /etc/ethers
データベースで指定された対応するホスト名にマップします。
.Fn ether_ntohost
は、イーサネットアドレスからホスト名への変換を行い、
.Fn ether_hostton
は、ホスト名からイーサネットアドレスへの変換を行います。
.Sh 戻り値
.Fn ether_line
は、処理が成功するとゼロを返します。指定された行
.Ar l
の一部をパースできなかった場合はゼロでない値を返します。
抽出されたイーサネットアドレスを指定の
.Ar ether_addr
構造
.Ar e
に返し、ホスト名を指定のストリング
.Ar h
に返します。
.Pp
処理が成功すると、
.Fn ether_ntoa
は、イーサネットアドレスの
.Tn ASCII
表現が入ったストリングを指すポインタを返します。指定された
.Ar ether_addr
を変換できない場合は、
.Dv NULL
ポインタを返します。同じように、
.Fn ether_aton
は成功すると
.Ar ether_addr
構造を指すポインタを返し、失敗すると
.Dv NULL
ポインタを返します。
.Pp
.Fn ether_ntohost
関数と
.Fn ether_hostton
関数は両方とも成功した場合はゼロを
返し、
.Pa /etc/ethers
データベース内に一致するものを検出できない場合はゼロ
でない値を返します。
.Sh
ユーザは、
.Fn ether_line ,
.Fn ether_ntohost
および
.Fn ether_hostton
の各関数に
渡されるホスト名ストリングが、返されたホスト名を入れられるほど大きいことを
確認する必要があります。
.Sh NIS 相互作用
.Pa /etc/ethers
の中に 1 つの + が入った行がある場合、
.Fn ether_ntohost
関数と
.Fn ether_hostton
関数は、
.Pa /etc/ethers
ファイル内のデータに加えて、
NIS
.Pa ethers.byname
および
.Pa ethers.byaddr
マップを調べようとします。
.Sh 関連項目
.Xr yp 4 ,
.Xr ethers 5
.Sh バグ
.Pp
.Fn ether_aton
関数と
.Fn ether_ntoa
関数は、これらが次に呼び出されたときには
上書きされる可能性のある静的メモリ領域に保存された値を返します。
.Sh 歴史
.Nm ethers
ライブラリ関数のこの特別な実現は、
.Fx 2.1
のために作成され、
ここで現れました。