将IP地址转换为数字:

Ste*_*ger 6 .net ip ipv4 ipv6

问题:当我将IP地址192.168.115.67转换为数字时,它是这样完成的:
192*256 3 + 168*256 2 + 115*256 1 + 67*256 0 = 3232265027

或类似这样:
192*256 0 + 168*256 1 + 115*256 2 + 67*256 3 = 1131653312

我在网上找到两种变体,坦白说只要我使用相同的转换过程变量进行所有内部IP范围比较就无所谓了.但我想从IPv4地址计算IP V6,似乎这两种变体都在网上......导致不同的IPv6地址,只有一个可以正确...

我使用1131653312变体,因为1131653312是我看到.NET给我的变体,但3232265027是我在C++中使用的变体,这也是我在网上找到的用于IPv4到IPv6转换的变体,以及在我看到.NET使用变体1131653312之前我使用过...

And*_*rey 5

这绝对是第一个.您可以ping并查看ping实用程序如何将其转换为abcd表示法.如果您要进行此转换,我建议使用表达式:(a << 24) | (b << 16) | (c << 8) | d

  • .NET(单声道)适用于PPC Linux(大端). (2认同)

Del*_*ani 4

得到的方法3232265027应该是正确的,因为第一个数字存储在 IPv6 的 IPv4 兼容性部分的最高位中:

0000:0000:0000:0000:0000:ffff: AABB:CCDD

在哪里

AA = 192
BB = 168
CC = 0
DD = 1

ETC。

https://wikipedia.org/wiki/IPv6

另外,您不能拥有256IP 地址。每个值为 0 - 255。