IPX(3) | FreeBSD Library Functions Manual | IPX(3) |
名称
ipx_addr, ipx_ntoa — IPX アドレス変換ルーチンライブラリ
IPX Address Conversion Support Library (libipx, -lipx)書式
#include < sys/types.h>#include < netipx/ipx.h>
struct ipx_addr
ipx_addr( const char *cp);
char *
ipx_ntoa( struct ipx_addr ipx);
解説
ルーチン ipx_addr() は、 IPX アドレスを表現する文字列を解釈し、システムコールで使用するのに適したバイナリ情報を返します。ルーチン ipx_ntoa() は、 IPX アドレスを取り、次のような共通に使用される記法でアドレスを表現する ASCII 文字列を返します:
<ネットワーク番号>.<ホスト番号>.<ポート番号>
後続する 0 のフィールドは、削除され、各番号は、 ipx_addr() への入力に適した形式で 16 進数印字されます。 10 進数を越える数字がないフィールドには、付加された後続する‘ H
’があります。
ipx_addr() が共通に使用されるほとんどの形式と互換性があるように保証するための努力が行われました。最初に、ピリオド‘ .
’、コロン‘ :
’またはシャープ記号‘ #
’から選ばれた単一のデリミタを使用して 1 から 3 つのフィールドにアドレスを分割します。次に、各フィールドは、バイトセパレータ (コロンまたはピリオド) がないか調べられます。バイトセパレータがあるなら、分離されたサブフィールドは、小さな 16 進数と解釈され、全体は、上位のネットワーク順のバイトで 0 を拡張したネットワークバイト順の量として解釈されます。次に、フィールドは、ハイフンがあるか検査され、その場合、フィールドは、 1000 単位のハイフンで区切られた 10 進数表記の数と見なされます。次に、フィールドは、次の数と見なされます: (C のように) 先導する‘ 0x
’があり、(Mesa のように) 後続する‘ H
’があるか、または 10 進数を越える数字があるなら、16 進数として解釈されます。先導する‘ 0
’があり、8 進数を越える数字がないなら、8 進数として解釈されます。そうでなければ、10 進数として変換されます。
戻り値
なし。 ( バグ を参照。)歴史
先行の ns_addr() と ns_toa() 関数は、 4.3BSD で登場しました。バグ
ipx_ntoa() によって返される文字列は、静的メモリ領域に存在します。関数 ipx_addr() は、不適切な形式の入力を診断すべきで、これを認識する明白な方法があるべきです。June 4, 1993 | FreeBSD |