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