in_についてaddrとinet_ntoaの使い方
struct in_addr {
in_addr_t s_addr;
};
構造体in_addrは32ビットのIPv 4アドレスを表す.
in_addr_tは一般に32ビットのunsigned longである.
ここで、8ビット毎に1つのIPアドレスビットの値を表す.
例えば192.168.3.144は0 xc 0 a 80390と記載され、c 0は192、a 8は168、03は3、90は144である.
印刷時にinet_を呼び出すことができますntoa()関数はchar*タイプに変換する.
今度はIP_を印刷しますMULTICAST_IF(外出インタフェース作成).データ型はin_addr{}です.s_addrを印刷します.
inet_ntoa()関数の使用例:
出力は:z=12.34.56.78
in_addr_t s_addr;
};
構造体in_addrは32ビットのIPv 4アドレスを表す.
in_addr_tは一般に32ビットのunsigned longである.
ここで、8ビット毎に1つのIPアドレスビットの値を表す.
例えば192.168.3.144は0 xc 0 a 80390と記載され、c 0は192、a 8は168、03は3、90は144である.
印刷時にinet_を呼び出すことができますntoa()関数はchar*タイプに変換する.
今度はIP_を印刷しますMULTICAST_IF(外出インタフェース作成).データ型はin_addr{}です.s_addrを印刷します.
struct in_addr s;
printf("%lu
", s.s_addr);
inet_ntoa()関数の使用例:
#include <stdio.h>
#include <arpa/inet.h>
int main()
{
in_addr_t x;
char *z; /* well set this equal to the IP string address returned by inet_ntoa */
char *y = (char *)&x; /* so that we can address the individual bytes */
y[0] = 12;
y[1] = 34;
y[2] = 56;
y[3] = 78;
z = inet_ntoa(*(struct in_addr *)&x); /* cast x as a struct in_addr */
printf("z = %s
", z);
return 0;
}
出力は:z=12.34.56.78