Windows supporta inet_pton
, che ha un'interfaccia simile a inet_aton
(ma funziona anche con gli indirizzi IPV6). Basta fornire AF_INET
come primo parametro, altrimenti funzionerà come inet_aton
.
(Se puoi cambiare il sorgente Linux, inet_pton
funzionerà anche lì).
Per eseguire in Windows XP, puoi provare questo controllo:
#pragma comment(lib, "Ws2_32.lib")
sockaddr_in inaddr;
#ifdef _WIN32_WINNT 0x0501
inaddr.sin_addr.s_addr =inet_addr("10.10.10.10"); //for XP
#else
inet_pton(AF_INET, "10.10.10.10", &inaddr.sin_addr.s_addr); //for Vista or higher
#endif
È l'equivalente di Windows piuttosto che l'equivalente di C++, ma probabilmente vorrai inet_addr
, che credo sia precedente al inet_aton
e quali sono supportati da Windows.
http://msdn.microsoft.com/en-us/library/ms738563.aspx
Quell'articolo elenca anche, nella sezione "vedi anche", l'insieme completo di funzioni con nomi dettagliati per gestire gli indirizzi IPv6 e così via.