簡體   English   中英

使用 PHP 更改域 IP 地址

[英]Changing a domains IP address with PHP

我目前有一台運行 Bind 的 Ubuntu 服務器。 我有一個 subdoamin (home.example.com) 鏈接到我的家庭 IP 地址。 我希望能夠使用一個 php 腳本,在訪問和驗證時會更改子域的 IP 地址。 我在想我可以使用 php 來編輯綁定配置文件,然后運行命令“service bind restart”。 這會是最好的方法嗎?

我同意'nsupdate'是一個更好的解決方案,但是它不需要PHP,至少不需要重新啟動服務器。 我認為如果您的網絡服務器可以這樣做非常不好。

在OS-X中(我想在Linux中有一個等效項-或crontab),一旦您更改IP后,將執行/etc/ppp/ip-up.sh和/etc/ppp/ip-down.sh文件(但顯然不是在WiFi上-為此,我使用crontab)。

觸摸/etc/ppp/ip-up.sh ln -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.

太糟糕了,我無法發布第三個鏈接...

您應該查看RFC2136。“ nsupdate”命令可以實現該功能,但這需要您的PHP腳本在服務器上運行命令。 搜索“ RFC 2136”會出現https://pear.php.net/manual/en/package.networking.net-dns.net-dns-updates-example.php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM