名 前
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) を 参 照 の こ と 。
準 拠
4.3BSD, SunOS.
バ グ
glibc 2.2.5 以 前 で は 、 ether_line() の 実 装 は お か し い 。
関 連 項 目
こ の 文 書 に つ い て
こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。