哪种类型有INET6_ATON? /最大长度为INET6_ATON?

时间:2016-07-10 14:54:10

标签: mysql ip-address

我想知道如何将INET6_ATON结果保存到MYSQL。所以我已经阅读了MYSQL-Help文章,它说,我应该使用VARBINARY(16)。但现在,使用IPv4 - 地址,它的内容为0x7F000001,我无法使用SQL获得结果。我的想法是使用CHAR,但在这种情况下,我不知道INET6_ATON - 结果的最大长度是多少。

所以:如果结果保存为VARBINARY,如何获取MYSQL结果? 或其他INET6_ATON - 结果的最大长度是多少?

我正在使用此SQL语句转换IP地址:

SELECT HEX(INET6_ATON("FE80:0000:0000:0000:0202:B3FF:FE1E:8329"))

非常感谢。

1 个答案:

答案 0 :(得分:0)

请注意,下面的人类可读栏目供人食用。

inet6列将包含超出范围的数字,我应该说对人类有意义。 Goobly goop,如果你愿意的话。

create table myFriends
(   id int auto_increment primary key,
    friendlyName varchar(100) not null,
    inet6 binary(16) not null,
    humanReadable char(32) not null
);

insert myFriends (friendlyName,inet6,humanReadable) values 
('Kathy Higgins',INET6_ATON("FE80:0000:0000:0000:0202:B3FF:FE1E:8329"),HEX(INET6_ATON("FE80:0000:0000:0000:0202:B3FF:FE1E:8329")));

select * from myFriends;
+----+---------------+------------------+----------------------------------+
| id | friendlyName  | inet6            | humanReadable                    |
+----+---------------+------------------+----------------------------------+
|  1 | Kathy Higgins | ■Ç      ☻☻│ ■▲â) | FE800000000000000202B3FFFE1E8329 |
+----+---------------+------------------+----------------------------------+

FE80代表2个字节。 FE 80.十六进制。每个字节的范围为00到FF(255)。

以不同格式查看我的回答Here。通常在一个表中使用几乎重复的信息。