我有一个IP存储在uint32_t类型变量中:
u32int_t ip = 4289172904;
我需要确定第一个八位位组或IP是否不是以 127/224和225 地址开头的。
我不确定该如何实现?
答案 0 :(得分:2)
这取决于您所说的第一个八位位组
uint8_t octet = ip & 0xff;
或
uint8_t octet = (ip >> 24);
第一个解决方案的说明:
uint32_t
在32位上
0xff
是00000000 00000000 00000000 11111111
的二进制文件
因此,ip & 0xff
将屏蔽所有不是来自最低字节的位
答案 1 :(得分:2)
没有有关npm run dev
语义的详细信息。请注意,您的主机字节顺序(字节序模式)可能与网络字节顺序不同。如有必要,使用uint32_t ip
转换为网络字节顺序,然后使用按位运算符检查最高字节,例如htonl(ip)
可以获取第一个八位位组,然后将其与您的127/244/255等进行比较。