如何使用来自 no-ip 的 DNS 名称通过套接字连接?或者有没有办法从 no-ip dns 名称中获取 IP?
在职的
$cnt = socket_connect($socket,"100.100.100.100",$port);
但IP是动态的。我需要类似的东西:
$cnt = socket_connect($socket, "blablabla.ddns.net",$port);
我试过 gethostbyname() 但它为所有无 IP 名称返回相同的 IP。
此解决方案将取决于您的服务器,但您可以回退到本机操作系统功能。例如,大多数 Linux 安装都有glibc
,允许您运行如下命令:
getent hosts blahblabla.ddns.net | awk '{print $1}'
现在,PHP 函数喜欢exec()
并且system()
可以用来运行这样的东西。
例如:
$command = 'getent hosts google.com | awk \'{print $1 ; exit}\'';
$ip = exec($command);
然后使用 IP 连接到您的套接字。
注意:请不要将用户提供的输入传递给此,除非您想度过难关。