如何使用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()但它为所有no-ip名称返回相同的IP。
答案 0 :(得分:0)
此解决方案取决于您的服务器,但您可以回退到本机操作系统功能。例如,大多数Linux安装都有glibc
,允许您运行如下命令:
getent hosts blahblabla.ddns.net | awk '{print $1}'
现在,像exec()
和system()
这样的PHP函数可以用来运行这样的东西。
例如:
$command = 'getent hosts google.com | awk \'{print $1 ; exit}\'';
$ip = exec($command);
然后使用IP连接到您的套接字。
注意:请不要将用户提供的输入传递给此项,除非您想要度过难关。