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];
}
マルチスレッディング (pthreads(7) 参照)¶
関数 
ether_aton() と 
ether_ntoa()
  はスレッドセーフではない。
関数 
ether_ntohost(), 
ether_hostton(),
  
ether_line(), 
ether_ntoa_r(), 
ether_aton_r()
  はスレッドセーフである。
4.3BSD, SunOS.
glibc 2.2.5 での 
ether_line()
  の実装はおかしい。
関連項目¶
ethers(5)
この文書について¶
この man ページは Linux 
man-pages
  プロジェクトのリリース
  3.65 の一部
  である。プロジェクトの説明とバグ報告に関する情報は
  
http://www.kernel.org/doc/man-pages/
  に書かれている。