如何确定字符串是否是C ++中的有效IPv6地址?

时间:2011-06-06 14:38:18

标签: c++ visual-studio-2008 windows-xp ip-address ipv6

  

可能重复:
  IPv6 parsing in C

如果字符串是C ++中有效的IPv6地址,我需要检查字符串。

C#here以及相当难看的正则表达式here都有优雅的解决方案。

在C ++中有一个很好的方法吗?

我目前正在使用它,但它在Windows XP上不起作用(缺少inet_pton()):

unsigned char buf[sizeof(struct in6_addr)];
bool isvalid= inet_pton(PF_INET6, (const char *)addr, buf);

2 个答案:

答案 0 :(得分:2)

您可以在Linux中使用getaddrinfo,或者在Windows 2000中使用Windows。(请参阅该文档页面中标题为“使用AI_NUMERICHOST的示例代码”部分)

答案 1 :(得分:0)

您可以使用自Windows 2000以来可用的WSAStringToAddress