Store IP Addresses as UNSIGNED INT

MySQL INDEX

Want to store IP addresses in database and still using VARCHAR(15)? You can actually store IP addresses as integer values because using INT you go down to 4 bytes of space and have a fixed size field.

As the range of a IP Addresses are 32 bit unsigned integer you can use your column as UNSIGNED INT.

In your MySql query you can use INET_ATON() to convert and IP to an integer, and INET_NTOA() for vice versa.

In PHP, ip2long() and long2ip() are same as above functions.

Example to store IP Addresses:

$sql = “UPDATE tbl SET ip = INET_ATON(‘{$_SERVER[‘REMOTE_ADDR’]}’) WHERE `tbl_column` = ‘$id'”;

Leave a Reply

Your email address will not be published. Required fields are marked *