読者です 読者をやめる 読者になる 読者になる

inet_ntoa

inet_ntoaは、in_addr構造体のIPアドレスIPアドレス文字列に変換するライブラリ関数・・・。

Man page of INET

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"に戻った・・・。

Sample/inet_ntoa.c at master · bg1bgst333/Sample · GitHub