如何從IPv4映射的IPv6地址獲取IPv4地址?如何從IPv4映射的IPv6地址解析IPv4地址?
例如,我有一個IP地址::FFFF:129.144.52.38
。從這裏,我需要提取129.144.52.38
。有沒有用於此目的的API?
我可以使用下面的函數
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;
}
識別IPv6或IPv4地址族如果我給一個IPv4映射的IPv6地址,這又如何可能識別,如果它是一個映射ADRESS?是否有任何套接字API從映射的IPv6地址中提取IPv4?
這個問題可能會感興趣:http://stackoverflow.com/q/13949750/175849 –