inet_ntoaは、in_addr構造体のIPアドレスをIPアドレス文字列に変換するライブラリ関数・・・。
inet_atonで、変換した後のin_addr構造体addrを元の文字列に戻す・・・。
in_addr構造体のaddrとIPアドレス文字列を指すchar *ポインタip_addr_strを用意・・・。
IPアドレス文字列"1.2.3.4"をネットワークバイトオ―ダに変換して、addrのs_addrに格納・・・。
0x01, 0x02, 0x03, 0x04の順で格納されるが、32bit intだと0x04030201と出力される・・・。
inet_ntoaでaddrをホストバイトオ―ダ(リトルエンディアン)に変換し(このとき、0x04, 0x03, 0x02, 0x01というバイト配列と捉える)、IPアドレス文字列に戻す・・・。
その文字列のポインタをip_addr_strに返す・・・。
それを出力・・・。
$ ./inet_ntoa
addr.s_addr = 0x04030201
ip_addr_str = 1.2.3.4
$
IPアドレス文字列"1.2.3.4"に戻った・・・。