mysql中IP地址的正确字段类型是什么?什么是使用PHP存储它的正确方法?使用PHP存储在MySQL数据库中的IP地址
回答
您可以将它们存储在长度为128位(16字节,BINARY(16)
或VARBINARY(16)
)的二进制字段中。 要将任何ip地址转换为其二进制表示形式,可以使用php函数inet_pton
。此方法将适用于IPv4和IPv6地址。 inet_ntop
可以用来取回储存的IP地址的字符串表示(不管版本)
我可以在IPv6和IPv4上使用它吗? – user552828
@ user552828:是的,您可以将其用于ipv4和ipv6 – knittl
,但他们说IPv6可以长45个字符隧道IP,所以是128位长度可以吗?我问,因为我不太善于编码,我是新手 – user552828
This tutorial可能会帮助你。
保存IPv4地址的最有效方法是使用INT字段(不像您期望的那样使用VARCHAR)。您可以使用PHP的ip2long
转换它们,并使用MySQL的INET_NTOA
函数或PHP的long2ip
函数进行转换。
如果您需要存储IPv6,则需要使用BINARY字段,而不是PHP的inet_pton
函数。
- 1. 在MySQL数据库表中存储IP地址的问题
- 2. 在MySQL数据库(IPv4和IPv6)中存储IP地址
- 3. MySQL数据库中的IP地址?
- 4. 在laravel注册时在数据库中存储IP地址5.1
- 5. 存储IP地址的数据结构
- 6. 检查IP地址是否存储在数据库中
- 7. 试图在数据库中存储IP地址。 SQL错误
- 8. 使用MySQL和PHP将数据存储在MySQL数据库中
- 9. 将数据库中的IP地址存储为最佳方式
- 10. 将IP地址保存到数据库
- 11. 使用数据库和IP地址的PHP用户认证?
- 12. 使用IP地址的Mysql查询无法插入数据库
- 13. PHP和MySQL在数据库中存储
- 14. 在mysql数据库中存储php datetime
- 15. sqlite的IP地址存储
- 16. IP地址没有被保存到使用MySQLi的数据库
- 17. 在mysql表中存储IP地址的理想数据类型是什么?
- 18. 我的地图数据没有得到存储在MySQL数据库使用php
- 19. 如何将IP地址(v4或v6)作为int存储在使用php的任何数据库中?
- 20. 在Oracle SQL表中存储IP地址
- 21. 以Java存储IP地址
- 22. 在MySQL中存储IP地址的最有效方式
- 23. PHP - 使用IP地址远程连接数据库
- 24. 存储获取和存储IP地址
- 25. 如何使用PHP和MySQL在MySQL数据库中存储数组数据?
- 26. PHP更换存储在MySQL数据库
- 27. 在PHP中的IP地址
- 28. 如何使用PHP在MySQL数据库中存储日期?
- 29. 如何使用php存储图像在mysql数据库中
- 30. 使用PHP在MySQL数据库中存储多个图像
取决于你想用它做什么,以及你关心的是哪个版本的IP。 –
取决于你将如何使用它,但通常,认为varchar会更好 – Balanivash
这可能会帮助你:http://stackoverflow.com/questions/1038950/what-is-be-the-most-appropriate-data-一种类型 - 储存 - 一个IP地址的功能于SQL服务器? – Alfred