将二进制转换为 IP 地址

网络工程 IP地址
2022-02-04 07:15:59

下面的二进制字符串无论如何都应该是一个(隐藏的)IP地址。如何将其转换为十进制?由于该数字包含太多八位字节,我不知道如何转换它。它应该导致这个 IPv4:83.226.175.75

二进制字符串:001101110011010001110101001100000100010001101011011010100011001001010001

但这没有任何意义!字符串的前 8 位指的是十进制的 55,IP 地址应该以 83 开头。我们能找到一个通用的规则将这个二进制数的长度链接到 IP 地址吗?好吧,它不可能是 IPv6,字符串太短了……

2个回答

IP 地址是 IPv4:32 位或 IPv6:128 位。

因此,您的二进制字符串不是 IP 地址。

没有。他们不匹配。

十进制 IP 符号只是表示二进制 IP 的一种更简单的方法。您可以将十进制 IP 更改为二进制 IP 并返回,但没有其他方法可以让它们神奇地转换为其他数字。


要将十进制 IP 转换为二进制,我们将四个八位字节拆分,并将每个十进制数转换为其二进制表示。
因此,对于您的 IP,83.226.175.75:

  • 83 → 01010011
  • 226 → 11100010
  • 175 → 10101111
  • 75 → 01001011

将它们全部重新组合在一起,您的二进制 IP 为 01010011111000101010111101001011。请注意,这是一个与您所拥有的完全不同的二进制数。特别是,它要短得多。
(并且它不包含在您的二进制数中的任何位置。)


为了从二进制转换为十进制,我们做相反的事情(你已经开始了):将它分成 8 位块并将每个块转换为其十进制表示。
如果我们尝试将您的二进制数转换为十进制 IP,我们会得到:

  • 00110111 → 55
  • 00110100 → 52
  • 01110101 → 117
  • 00110000 → 48
  • 01000100 → 68
  • 01101011 → 107
  • 01101010 → 106
  • 00110010 → 50
  • 01010001 → 81

如果我们将这些十进制数字像 IP 一样放在一起,它将是 55.52.117.48.68.107.106.50.81。这显然不是IP。它可能是两个 IP,混合在一起,加上一个额外的八位字节,但这不是我希望在网络中遇到的事情。


也许如果你告诉我们那个字符串是从哪里来的,有人可以让你更好地理解它的含义