inet_ntoa

IPv4アドレスへのポインタのドットで区切った4組の10進数文字列を返します。

string inet_ntoa(void *ptr)

inet_ntoa関数は、IPv4アドレス(ptr)へのポインタをとり、ドット区切りの10進数文字列として返します。返される文字列には、スクラッチ・メモリーからメモリーが割り当てられます。そのためこれは節の処理中にのみ有効です。使用できるスクラッチ・メモリーが不足している場合、inet_ntoaは実行されず、エラーが生成されます。詳細は、inet(3)マニュアル・ページを参照してください。

例7-21 inet_ntoaを使用してIPv4アドレスへのポインタのドット付きIPv4アドレス表記を返す方法

この例では、IPアドレス・ポインタがスクラッチ・メモリーに作成され、それをinet_ntoa関数が処理して文字列値を返すことができるように移入されます。

 typedef vmlinux`__be32 ipaddr_t;
 ipaddr_t *ip4a;
 BEGIN
 {
         ip4a = alloca(sizeof(ipaddr_t));
         *ip4a = 0x0100007f;
         printf("%s\n", inet_ntoa(ip4a));
         exit(0);
 }