Изменение IP-адреса домена с помощью PHP - PullRequest
0 голосов
/ 15 января 2011

В настоящее время у меня есть сервер Ubuntu, на котором работает Bind.У меня есть поддомен (home.example.com), ссылающийся на мой домашний IP-адрес.Я хотел иметь возможность использовать сценарий php, который при посещении и проверке подлинности изменил бы IP-адрес субдомена.Я думал, что смогу использовать php для редактирования файлов конфигурации bind, а затем запустить команду «service bind restart».Это будет лучший способ сделать это?

Ответы [ 3 ]

2 голосов
/ 17 мая 2012

Я согласен, что 'nsupdate' будет лучшим решением, но для этого не потребуется PHP, по крайней мере, для перезапуска сервера.Я думаю, что это очень плохо, если ваш веб-сервер может это сделать.

В OS-X (и я предполагаю, что в Linux есть эквивалент - или же crontab) файлы /etc/ppp/ip-up.shи /etc/ppp/ip-down.sh выполняются после изменения IP-адреса (но, видимо, не по WiFi - поэтому для этого я использую crontab).

touch /etc/ppp/ip-up.shln -s! $ /etc/ppp/ip-down.sh

/ etc / ppp / ip-up.sh:

#!/bin/bash
H=domain.mobi
IP=`curl -s http://domain.mobi/ip.php` # or wget, etc.

nsupdate -v -y tsig.$H:Wwr82TQdx3biQdx3biq2Pibi7IMq2PGxETCetcETC== > /dev/null << EOF
server 129.8.7.53
zone $H
update delete john.$H SPF
update delete john.$H TXT
update add    john.$H 600 SPF "v=spf1 ip4:$IP -all"
update add    john.$H 600 TXT "v=spf1 ip4:$IP -all"
send
EOF

Теперь, если ваш мастер уведомляет об этом / axfr /ixfr тогда в мгновение ока ваша зона обновляется.Ip.php в вышеприведенном скрипте прост:

<?php
header("Content-Type: text/plain");
echo $_SERVER['REMOTE_ADDR'];
?>

Это примеры людей, которые в основном делают то же самое:

Упс!Ваш ответ не может быть отправлен, потому что:

We're sorry, but as a spam prevention mechanism, new users can only post a maximum of two hyperlinks. Earn more than 10 reputation to post more hyperlinks.

очень плохо, я не смог опубликовать 3-ю ссылку ...

2 голосов
/ 15 января 2011
1 голос
/ 15 января 2011

Вы должны взглянуть на RFC 2136. Команда nsupdate реализует это, но для этого требуется, чтобы ваш PHP-скрипт выполнял команду на сервере. Появляется запрос "RFC 2136" https://pear.php.net/manual/en/package.networking.net-dns.net-dns-updates-example.php

...