Как я могу подключиться через сокет, используя DNS-имя из no-ip? или есть ли способ получить IP от имени no-ip dns?
за работой
$cnt = socket_connect($socket,"100.100.100.100",$port);
но IP динамический.
Мне нужно что-то вроде:
$cnt = socket_connect($socket, "blablabla.ddns.net",$port);
Я пробовал gethostbyname (), но он возвращает один и тот же IP-адрес для всех имен no-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 для подключения к вашей розетке.
НОТА: Пожалуйста, не передавайте вводимые пользователем данные, если вы не хотите, чтобы у вас было плохое время.
РЕКОМЕНДАЦИИ: https://unix.stackexchange.com/questions/20784/how-can-i-resolve-a-hostname-to-an-ip-address-in-a-bash-script
Других решений пока нет …