我有點麻煩,從我的mysql sql server中選擇正確的值。MYSQL - SELECT IP v4/v6,inet_pton&bin2hex
該ip可以是ipv6和v4。
表:用戶{
...
IP二進制(16)
}
$ip = '192.168.10.115';
$ip = bin2hex(inet_pton($ip)); // Returns c0a80a73
$result = $this->db->select("SELECT * FROM User WHERE HEX(ip) = $ip");
// $result empty because in db its stored as:
// HEX(ip) = C0A80A73000000000000000000000000
我怎樣才能得到一個可行的比賽進行到* 00000 *?
如果輸入是一個ipv6匹配,這將是好的,但ip v4不是。
嘗試更改爲'IP VARBINARY(16)'? – drew010 2012-02-10 23:01:19
如果您將該變量存儲爲十六進制數字,請將該列更改爲數字...「HEX()」將用於數字輸入。 – nickb 2012-02-10 23:04:47
@ drew010我用你的解決方案,工作完美。 – 2012-02-10 23:37:52