#include <arpa/inet.h> char *inet_ntoa(struct in_addr addr) addr : IPv4 アドレス
参考: ソケットアドレス構造体
struct sockaddr { uint8_t sa_len; sa_family_t sa_family; // アドレスファミリ( AF_*** ) char sa_data[14]; // プロトコル依存 };
#include <netinet/in.h> struct in_addr { in_addr_t s_addr; // 32 ビットの IPv4 アドレス // ネットワークバイト順序 }; struct sockaddr_in { uint8_t sin_len; // 構造体の大きさ( 16 バイト) sa_family_t sin_family; // AF_INET in_port_t sin_port; // 16 ビットのポート番号 // ネットワークバイト順序 struct in_addr sin_addr; // 32 ビット IPv4 アドレス // ネットワークバイト順序 char sin_zero[8]; // 未使用 };
#include <netinet/in.h> #define SIN6_LEN struct in6_addr { uint8_t s6_addr[16]; // 128 ビットの IPv6 アドレス // ネットワークバイト順序 }; struct sockaddr_in6 { uint8_t sin6_len; // 構造体の大きさ( 24 バイト) sa_family_t sin6_family; // AF_INET6 in_port_t sin6_port; // トランスポート層ポート番号 // ネットワークバイト順序 uint32_t sin6_flowinfo; // 優先度フローラベル // ネットワークバイト順序 struct in6_addr sin6_addr; // IPv6 アドレス // ネットワークバイト順序 };
菅沼ホーム | 本文目次 | 演習問題解答例 | 付録目次 | 索引 |