PHP-сокет с использованием no-ip
Как я могу подключиться через сокет, используя 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 для всех имен без ip.
1 ответ
Это решение будет зависеть от вашего сервера, но вы можете использовать собственные возможности операционной системы. Например, большинство установок 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 для подключения к вашей розетке.
ПРИМЕЧАНИЕ. Пожалуйста, не передавайте вводимые пользователем данные, если вы не хотите, чтобы у вас были проблемы.