使用no-ip的PHP套接字

时间:2016-12-21 19:07:30

标签: php sockets noip

如何使用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。

1 个答案:

答案 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连接到您的套接字。

注意:请不要将用户提供的输入传递给此项,除非您想要度过难关。

参考文献:https://unix.stackexchange.com/questions/20784/how-can-i-resolve-a-hostname-to-an-ip-address-in-a-bash-script