what is the right field type for IP address in mysql? and what is the right way of storing it using PHP?
相关问题
- Views base64 encoded blob in HTML with PHP
- Laravel Option Select - Default Issue
- PHP Recursively File Folder Scan Sorted by Modific
- Can php detect if javascript is on or not?
- Using similar_text and strpos together
Generally you can go with VARCHAR(45) as it will be long enough to even store IPv6.
This tutorial might help you.
The most efficient way of saving IPv4 addresses is with an INT field (not VARCHAR as you might expect). You convert them using PHP's
ip2long
and back using either MySQL'sINET_NTOA
function or PHP'slong2ip
function.If you need to store IPv6, you'll want to use a BINARY field instead and PHP's
inet_pton
function.you can store them in a binary field with a length of 128 bits (16 bytes,
BINARY(16)
orVARBINARY(16)
). to convert any ip address to its binary representation, you can use the php functioninet_pton
. this method will work for both IPv4 and IPv6 addresses.inet_ntop
can be used to get back the string representation of the stored ip address (regardless of version)