2010-02-01 71 views
0

我來到這個陳述中插入一個IP到mysql表中。插入ip到mysql

INSERT INTO `best` VALUES (132+256*(172+256*(109+256*(115)) 

我想知道爲什麼一個IP被插入這種方式,以及如何實際制定出被插入什麼IP

+1

相關較小:http://stackoverflow.com/questions/1386930/how-do-you-store-an -ip-address-v4-or-v6-as-an-int-in-any-database-using-php http://stackoverflow.com/questions/1385552/datatype-for-storing-ip-address-in- sql-server http://stackoverflow.com/questions/1038950/what-is-be-the-most-appropriate-data-type-for-storing-an-ip-address-in-sql-server – 2010-02-01 08:56:51

回答

1

它喜歡存儲十進制(整數)的IP地址,因爲它使以後工作​​會更容易。

但是,您可以使用MySQL命令輕鬆轉換數據。例如,如果您檢索到IP,則可以使用inet_aton('$ip')命令將插入IP地址($ ip)轉換爲十進制數,然後將數據添加到數據庫中。您可以通過使用inet_ntoa

看到這個鏈接的十進制地址轉換回字節:

http://www.countryipblocks.net/networking/ip-address-conversion-to-decimal-and-binary-equivalents/

http://www.webproworld.com/web-programming-discussion-forum/85464-storing-ip-location-mysql-database.html

+0

有趣的。那麼是否沒有辦法查看上面的字符串並找出IP? – Anonymous 2010-02-01 08:48:14

+0

•INET_NTOA(expr) 以網絡字節順序(4或8字節)給定數字網絡地址,以字符串形式返回地址的虛線四捨五入。 mysql> SELECT INET_NTOA(3520061480); - >'209.207.224.40' – 2010-02-01 08:51:04

+0

上例中的IP地址是115.109.172.132。匹配的數字取決於你;-) – 2010-02-01 08:59:51

0

多數民衆贊成的方式使用,以減少用於存儲IP的空間。

用這種方式,你將存儲在整型字段IP地址,這是在空間比char類型