inet_pton不工作

YWS*_*WSW 4 php

我正在尝试使用PHP代码中的inet_pton()将IP地址转换为mysql存储的数字字符串,但此函数要么不返回任何内容,要么:' ?i'注意:IP地址是标准IPv4 (而不是我的本地主机)

我的代码是:echo inet_pton($ _ SERVER ['REMOTE_ADDR']);

Eug*_*eck 6

输出inet_pton()是二进制字符串 - 在大多数情况下无法打印.你可以试试这个

echo inet_pton("65.66.67.68");
Run Code Online (Sandbox Code Playgroud)

在@YWSW的反馈之后编辑问题是,如何在4字节173,63,155和119中的字符串"173.63.155.19"中拆分IP地址

这可以通过以下方式实现

$ip_bytes=inet_pton($ip_string);

$ip_byte0=ord($ip_bytes[0]);
$ip_byte1=ord($ip_bytes[1]);
$ip_byte2=ord($ip_bytes[2]);
$ip_byte3=ord($ip_bytes[3]);
Run Code Online (Sandbox Code Playgroud)

$ ip_byte [0..3]是你需要的4个字节.

请理解,我不认可在DB中存储IP地址为4个整数!