Windows unterstützt inet_pton
, das eine ähnliche Schnittstelle wie inet_aton
hat (das funktioniert aber auch mit IPv6-Adressen). Geben Sie einfach AF_INET
an als erster Parameter und funktioniert ansonsten wie inet_aton
.
(Wenn Sie die Linux-Quelle ändern können, inet_pton
wird dort auch funktionieren).
Um in Windows XP zu laufen, können Sie diese Prüfung versuchen:
#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
Es ist eher das Windows-Äquivalent als das C++-Äquivalent, aber wahrscheinlich möchten Sie inet_addr
, das meiner Meinung nach vor inet_aton
liegt und welche Windows unterstützt.
http://msdn.microsoft.com/en-us/library/ms738563.aspx
Dieser Artikel listet im Abschnitt „Siehe auch“ auch den vollständigen Satz von Funktionen mit ausführlichen Namen auf, um IPv6-Adressen usw. zu verarbeiten.