ether_aton, ether_ntoa, ether_ntohost, ether_hostton, ether_line, ether_ntoa_r,
ether_aton_r - Ethernet
アドレスの操作用関数
#include <netinet/ether.h>
char *ether_ntoa(const struct ether_addr *addr);
struct ether_addr *ether_aton(const char *asc);
int ether_ntohost(char *hostname, const struct ether_addr *addr);
int ether_hostton(const char *hostname, struct ether_addr *addr);
int ether_line(const char *line, struct ether_addr *addr,
char *hostname);
/* GNU 拡張 */
char *ether_ntoa_r(const struct ether_addr *addr, char *buf);
struct ether_addr *ether_aton_r(const char *asc,
struct ether_addr *addr);
関数
ether_aton()
は、標準的な
16進数とコロンの形式で書かれた
48ビットの Ethernet
ホストアドレス
asc
を、ネットワークでのバイト順
(byte order)
のバイナリデータに変換し、静的に割り当てられたバッファーに格納されたデータ
へのポインターを返す。このバッファーは、これ以降の関数呼び出しで上書きされる。
アドレスが不正な場合、
ether_aton() は NULL を返す。
関数
ether_ntoa()
は、ネットワークのバイト順で表された
Ethernet ホストアドレス
addr
を、標準的な
16進数とコロンの形式の文字列に変換する。
但し、先頭の 0
は省略される。変換後の文字列は静的に割り当てられたバッファー
に格納されて返される。このバッファーは、これ以降の関数呼び出しで上書きされる。
関数
ether_ntohost() は、Ethernet
アドレスに対応するホスト名を
/etc/ethers
を検索して割り当てる。対応するホスト名が見つからなかった場合は、
非 0 を返す。
関数
ether_hostton()
は、ホスト名に対応する
Ethernet アドレスを
/etc/ethers
を検索して割り当てる。対応するホスト名が見つからなかった場合は、
非 0 を返す。
関数
ether_line() は、
/etc/ethers
形式になった行を解析し、
アドレスとホスト名の組を返す
(
/etc/ethers 形式は、Ethernet
アドレス、ホスト名が空白文字
(whitespace)
で区切られた書式で、'#'
以降はコメントとみなされる)。
解析できなかった場合は、非
0 を返す。
hostname
で指定されたバッファーは十分な長さが必要である。つまり、
line
と同じ長さでなければならない。
関数
ether_ntoa_r() と
ether_aton_r()
は、 それぞれ
ether_ntoa() と
ether_aton() の
リエントラントでスレッドセーフなバージョンであり、
静的なバッファーを使用しない。
ether_addr 構造体は
<net/ethernet.h>
で次のように定義されている:
struct ether_addr {
uint8_t ether_addr_octet[6];
}
この節で使用されている用語の説明は
attributes(7) を参照のこと。
Interface |
Attribute |
Value |
ether_aton(), ether_ntoa() |
Thread safety |
MT-Unsafe |
ether_ntohost(), ether_hostton(), ether_line(),
ether_ntoa_r(), ether_aton_r() |
Thread safety |
MT-Safe |
4.3BSD, SunOS.
glibc 2.2.5 以前では、
ether_line()
の実装はおかしい。
ethers(5)
この man ページは Linux
man-pages
プロジェクトのリリース
5.10
の一部である。プロジェクトの説明とバグ報告に関する情報は
https://www.kernel.org/doc/man-pages/
に書かれている。