回答
有几个通用的原因,比如整数比字符串占用的空间少,但只是想强调主要的一个:IP地址实际上是数字。
我们人类更喜欢IP地址字符串表示法,比如“10.0.0.1”或“2002 :: 2”,以使我们的生活更轻松。事实上,大多数对IP的操作都是严格的数字。例如,掩蔽(IP &掩模),检查IP范围(第一< IP <最后)等
所以,就像许多字符串表示我们转换为整数类型( “123” - > 123), IP的字符串表示应转换为其整数形式(“10.0.0.1” - > 0x0A000001或167772161)。
我同意你的意见。 IP地址是整数(整数的定义,虽然它们通常不符合某些编程语言的整数定义)。有一个人强烈反对(见评论@ https://stackoverflow.com/q/45067655/3745413)。 –
在今天的世界里,5个额外的字节加起来并不重要,对吧?但我知道你指出这是一个原则问题。 – Kapparina
@Kapparina取决于你拥有多少IP地址;)如果它是一个连接数据库(流量),那5个额外的字节数百万(十亿)记录,每个记录少数IPs ......然后查询。相同IP的字符串表示可能会有所不同,例如“10.0.0.1”基本上与“010.000.000.001”相同。因此,要选择所有10.0。*。*连接,您必须考虑这些可能的不同表示。加起来。将IP存储为字符串没有任何优势,但可能存在技术限制。 –
- 1. 为什么JavaScript转换它,它是什么将它转换为?
- 2. 为什么要在存储之前将SHA1转换为base64?
- 3. 为什么要将null转换为Object?
- 4. BLE GATT:为什么要在整数类型中存储小数?
- 5. 将一串数字转换为一个整数,存储结果
- 6. R:为什么“ifelse”将胁迫因子转换为整数?
- 7. 将函数转换为存储过程
- 8. 如何将CSV字符串转换为整数并添加它。存储txtfile
- 9. 将NSString转换为整数
- 10. 将varchar转换为整数
- 11. 将bytearray转换为整数
- 12. 将BigDecimal转换为整数
- 13. SAS Put语句 - 为什么它可以用来将char转换为数字?
- 14. 为什么要转换为灰度opencv?
- 15. 为什么to_java方法将Java中的整数(会是什么)转换为Long?
- 16. 为什么存在将函数隐式转换为bool?
- 17. 如何将整数数组转换为C++中的IP地址?
- 18. 为什么C#转换为0.75〜1当我把它存储的Int16
- 19. 将Activity转换为AppCompatActivity时,为什么没有menu.main,以及如何替换它?
- 20. 将整数指针转换为整数
- 21. 为什么在processing.js中将值减去-0.2将整数转换为无理数?
- 22. 如何在保存到数据库之前将IP地址转换为整数
- 23. 将纬度/经度存储为整数有什么优势?
- 24. 将IP转换为反向ip查找
- 25. 如何手动将整数转换为Ruby中的IP地址
- 26. 将本地IP地址转换为整数
- 27. 如何将IP地址转换为BigQuery中的整数?
- 28. 当存储一个大的正整数它转换为不同的负数
- 29. 这个语法是什么意思将argb转换为整数?
- 30. 将长整型转换为整数
为了能够正确排序并对IP地址进行数学运算。在包头中,IPv4地址是32位整数,而IPv6地址是128位整数。网络设备以这种方式使用它们。 –