0

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

4

1 回答 1

0

此解决方案将取决于您的服务器,但您可以回退到本机操作系统功能。例如,大多数 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 连接到您的套接字。

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

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

于 2016-12-21T19:35:17.713 回答