如何在c++中表示IPv6
How to represent an IPv6 in C++?
我想知道在c++中存储IPv6的最有效方法是什么?
基本上,我需要一种格式,提供尽可能多的灵活性,并与现有库兼容。我的第一个想法是使用一个简单的std::vector<int>
,因为这将允许我轻松访问地址的每个部分。
这是一个好的解决方案吗?或者我以后会遇到麻烦吗?
这应该是好的,但你可能想做一个std::vector
/* IPv6 address */
struct in6_addr
{
union
{
uint8_t u6_addr8[16];
uint16_t u6_addr16[8];
uint32_t u6_addr32[4];
} in6_u;
#define s6_addr in6_u.u6_addr8
#define s6_addr16 in6_u.u6_addr16
#define s6_addr32 in6_u.u6_addr32
};
以下内容: #include <netinet/in.h>
这样你就可以使用你的地址的静态初始化,并完成它。在vector对象上重复执行push_backs操作会变得非常麻烦,而且会使其难以阅读。
您的意思是存储IPv6地址?如果是这样,int是不够的,每个需要128位。
相关文章:
- 表示"accepting anything for this template argument" C++概念的通配符
- 如何将ampl中的集合表示为c++中的向量
- std::is_base_of表示ctor编译错误
- 输入中的字符串数未知(以字母表示)
- 我可以信任表示整数的浮点或双精度来保持精度吗
- c++模板来表示多项式
- 询问在设计我的手臂模拟器功能表示格式1
- CMakeLists.txt中的命名空间表示法
- C++射线示踪剂ppm表示没有足够的数据来显示图像
- 如何计算Big-O表示法中的平均渐近运行时间
- 我应该如何表示我拥有的连续元素序列?
- 在C++中,使用带有 std::optional 参数的函数<T>来表示可选参数是否有意义?
- 在 std::无符号字符的向量处存储 int 的十六进制表示形式
- 表示类模板C++空类型
- 具有所表示类的相同构造函数签名的代理类模板
- 嵌套在循环中的两个循环的 big-O 表示法
- 具有引用成员的结构是否具有唯一的对象表示形式
- 使用 int 表示浮点除法 C++
- Geeksforgeeks C 程序故障排除:IEE 754 表示法为十进制
- 如何在c++中表示IPv6