IPv4 にマッピングされた IPv6 アドレスから IPv4 アドレスを取得するには?
たとえば、私は IP アドレスを持っています::FFFF:129.144.52.38
。これから、抽出する必要があり129.144.52.38
ます。この目的のための API はありますか?
次の関数を使用して、IPv6 または IPv4 アドレス ファミリを識別できます。
int getaddrfamily(const char *addr)
{
struct addrinfo hint, *info =0;
memset(&hint, 0, sizeof(hint));
hint.ai_family = AF_UNSPEC;
// Uncomment this to disable DNS lookup
//hint.ai_flags = AI_NUMERICHOST;
int ret = getaddrinfo(addr, 0, &hint, &info);
if (ret)
return -1;
int result = info->ai_family;
freeaddrinfo(info);
return result;
}
IPv4 にマッピングされた IPv6 アドレスを指定すると、それがマッピングされたアドレスかどうかをどのように識別できるでしょうか? マッピングされた IPv6 アドレスから IPv4 を抽出するソケット API はありますか?