可能重复:
IPv6地址的文本表示的最大长度?
作为存储客户端IP地址的数据库列的最大大小,您会建议什么?我现在把它设置为16,但是我可以获得比IPv6更长的IP地址吗?
什么应该是在MySQL数据库中将IPv4,IPv6地址存储为字符串的理想大小.varchar(32)应该足够吗?
我需要调整一些数据库表,以容纳50多个字符长的网络接口名称.我想知道接口名称可以有多长时间的标准,所以我可以正确映射它.
以下程序及其输出显示INET_ADDRSTRLEN
定义为16
和INET_ADDRSTRLEN
定义为46
.
这是程序.
#include <stdio.h>
#include <arpa/inet.h>
int main()
{
printf("%d\n", INET_ADDRSTRLEN);
printf("%d\n", INET6_ADDRSTRLEN);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这是输出.
16
46
Run Code Online (Sandbox Code Playgroud)
我能理解为什么INET_ADDRSTRLEN
需要16
.IPv4地址的最大可能字符串表示消耗15个字节,例如"255.255.255.255"
.因此,需要16个字节来存储具有终止空字符的IP地址.
但为什么INET6_ADDRSTRLEN
需要46
呢?IPv6地址的最大可能字符串表示仅消耗39个字节(根据我的知识),例如"ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff"
.因此,只需要40个字节来存储具有终止空字符的IP地址.
是否存在可以消耗46个字节的IPv6地址的字符串表示形式?
在MySQL数据库中用PHP存储IP的最佳实践是什么?有一个名为ip2long的函数 - 但这仅适用于IPv4.但是IPv6呢?
我知道一个用于IPv6 IP的PHP函数,但它在使用PHP <Version 5.3的Windows上不起作用
我正在开展一个与网络/压缩相关的项目.其中一台机器是Windows Vista,已经配置了IPv6.
当我尝试时ipconfig
,我会看到以下格式的地址:fe80::9dc8:72fa:aacd:76e2%10
但是当我尝试从另一台机器ping这台机器时ping fe80::9dc8:72fa:aacd:76e2%10
,我收到以下错误:
Ping request could not find host fe80::9dc8:72fa:e327:76e2%10.
Please check the name and try again.
任何想法/评论都非常有帮助.
我正在尝试使用Laravel 4将用户IP地址保存到我的数据库.我发现以下函数返回一个字符串
Request::getClientIp()
Run Code Online (Sandbox Code Playgroud)
我如何将它存储在我的模型中?只是一个字符串或有更有效的方式?
$table->string('ip_address');
Run Code Online (Sandbox Code Playgroud)