使用in6_addr和in_addr轉化為字串型別
pctstr wsaapi inetntop(__in int family,
__in pvoid paddr,
__out ptstr pstringbuf,
__in size_t stringbufsize
);
family = af_inet (ipv4)
family = af_inet6(ipv6)
paddr = in_addr * (ipv4)
paddr = in6_addr*(ipv6)
2. 將sockaddr轉化為字串
int wsaapi wsaaddresstostring(詳細用法:__in lpsockaddr lpsaaddress,
__in dword dwaddresslength,
__in_opt lpwsaprotocol_info lpprotocolinfo,
__inout lptstr lpszaddressstring,
__inout lpdword lpdwaddressstringlength
);
3.示例(獲取ipv6位址非fe80位址)
void getlocalipv6(char *ipaddr)
// 第二次呼叫getadaptersaddresses 獲取實際想獲取的資訊.
if ((dwretval = getadaptersaddresses(af_inet6, 0 , null, paddresses, &outbuflen)) == no_error)
else
}pcurraddresses = pcurraddresses->next;
}}}
IPv4與IPv6的互操作性
雙棧主機的乙個基本特性是其上的ipv6伺服器既能處理ipv4客戶,也能處理ipv6客戶,這是通過ipv4對映ipv6位址實現的 ipv6伺服器建立乙個ipv6監聽套接字,ipv4客戶端通過gethostbyname找到伺服器的乙個a記錄,雖然ipv6伺服器有a記錄和aaaa記錄 ipv4客戶端只使用...
《網路程式設計》IPv4 與 IPv6 相互操作
由於網際網路終端不斷增加,ipv4 位址長度 32位 已不能夠滿足要求,所以出現了 ipv6位址 128位 但是現有應用程式大部分還是採用 ipv4 位址形式,所以必須解決 ipv4 與 ipv6 之間的相互操作,使現有基於 ipv4 的應用程式能夠與基於 ipv6 的應用程式相互通訊。那麼我們怎麼...
《網路程式設計》IPv4 與 IPv6 相互操作
因為網際網路終端不斷新增。ipv4 位址長度 32位 已不可以滿足要求。所以出現了 ipv6位址 128位 可是現有應用程式大部分還是採用 ipv4 位址形式,所以必須解決 ipv4 與 ipv6 之間的相互操作,使現有基於 ipv4 的應用程式可以與基於 ipv6 的應用程式相互通訊。那麼我們怎麼...