PHP仅将主机+ IP解析为IP地址

Lio*_*ior 3 php regex

我想要这个: 46-121-31-23.example.net

要解析为: 46.121.31.23

替换连字符并使用REGEX删除字符是不够的,因为这样做的结果是 46.121.31.23..

Mar*_*c B 5

怎么样gethostbyname()?虽然您的特定主机名将IPv4地址编码为其"友好"名称,但无法保证始终为真.所以使用真实姓名 - > ip查找系统:DNS

$ip = gethostbyname('46-121-31-23.example.net');
echo $ip; // 46.121.31.23
Run Code Online (Sandbox Code Playgroud)

评论后续:该主机名显然不存在:

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)
Run Code Online (Sandbox Code Playgroud)

因此,无法进行DNS查找,因为对该域具有权威性的服务器不知道您在谈论什么.

但是,反向映射(IP->主机名)DOES工作:

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.
Run Code Online (Sandbox Code Playgroud)

因此,由于某种原因,该提供商仅进行反向映射,而不是向前.