首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >unix上高效IP地址c/c++库

unix上高效IP地址c/c++库
EN

Stack Overflow用户
提问于 2011-05-02 12:50:24
回答 5查看 1.4K关注 0票数 2

是否有一个很好的高级库可以用于IP地址的操作?我需要做的事情是:

  • 给定一个字符串,看看它是否是有效的IPv4 4/IPv4 6地址。
  • 具有像ntop和pton这样的功能

我可以使用低级别的inet_ntop()等等,但是是否有一个更好的库来处理这些更好、更快(c/c++/python)?

EN

回答 5

Stack Overflow用户

发布于 2011-05-02 13:20:49

对于C++,标准的高级别答案将是boost.asio。具体来说,要将字符串转换为具有字符串的IP地址,为了获得ip地址的字符串表示形式,它具有字符串

请检查ip地址对象的其他建设者 --使用原始字节可能比字符串更有效。

票数 3
EN

Stack Overflow用户

发布于 2011-05-02 13:09:40

如果您正在编写套接字应用程序,那么地址操作不太可能成为您最重要的考虑因素。当你有网络I/O需要担心的时候,不要浪费时间在这上面。

票数 1
EN

Stack Overflow用户

发布于 2011-05-03 09:22:33

inet_ntopinet_pton不支持IPv6区域,因此推荐的API只是getaddrinfogetnameinfo,它们方便地与IP版本无关。

传递NI_NUMERICHOST等标志,以强制IP地址验证而不需要DNS解析。

http://msdn.microsoft.com/en-us/library/ms738532(VS.85).aspx

示例:

代码语言:javascript
运行
复制
char* input_str
struct addrinfo *result = NULL, hints;
ZeroMemory( &hints, sizeof(hints) );
hints.ai_flags = AI_NUMERICHOST;
hints.ai_family = AF_UNSPEC;
dwRetval = getaddrinfo( input_string, NULL, &hints, &result );
if ( dwRetval != 0 ) {
     /* failure */
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5857320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档