<分区>
我试图得到这个:46-121-31-23.example.net
解析为:46.121.31.23
使用 REGEX 替换连字符和删除字符是不够的,因为这样的结果将是 46.121.31.23..
<分区>
我试图得到这个:46-121-31-23.example.net
解析为:46.121.31.23
使用 REGEX 替换连字符和删除字符是不够的,因为这样的结果将是 46.121.31.23..
最佳答案
gethostbyname()
怎么样?虽然您的特定主机名已将 IPv4 地址编码到其“友好”名称中,但不能保证始终如此。所以使用实名->ip查找系统:DNS
$ip = gethostbyname('46-121-31-23.example.net');
echo $ip; // 46.121.31.23
评论跟进:该主机名显然不存在:
marc@panic:~$ host -t ns static.012.net.il
static.012.net.il name server pdns.goldenlines.net.il.
static.012.net.il name server sdns.goldenlines.net.il.
marc@panic:~$ host 46-121-31-23.static.012.net.il pdns.goldenlines.net.il
Using domain server:
Name: pdns.goldenlines.net.il
Address: 212.117.129.3#53
Aliases:
Host 46-121-31-23.static.012.net.il not found: 3(NXDOMAIN)
因此无法进行 DNS 查找,因为该域的权威服务器不知道您在说什么。
但是,反向映射(IP->主机名)确实有效:
marc@panic:~$ host 46.121.31.23
23.31.121.46.in-addr.arpa domain name pointer 46-121-31-23.static.012.net.il.
因此出于某种原因,该提供商只进行反向映射,而不进行正向映射。
关于PHP 仅将主机+IP 解析为 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9040716/