mirror of
https://github.com/fernwerker/ownDynDNS.git
synced 2025-07-09 21:55:13 +02:00
* ad ability to update also wildcard record
This commit is contained in:
parent
eb34f44292
commit
3ce566787c
3 changed files with 33 additions and 10 deletions
|
@ -8,6 +8,7 @@ DOMAIN="my-home-nas.de"
|
|||
#DOMAIN="nas.my-home.de"
|
||||
SCRIPT="https://<url of your webspace>/update.php"
|
||||
FORCE=0
|
||||
MODE="both" # can be undefined, "@", "*" or "both"
|
||||
|
||||
IPV4=$(curl -4 -q ident.me)
|
||||
IPV6=$(curl -6 -q ident.me)
|
||||
|
@ -15,11 +16,11 @@ IPV6=$(curl -6 -q ident.me)
|
|||
echo ${IPV4}
|
||||
echo ${IPV6}
|
||||
|
||||
# PAYLOAD_IPV4="force=${FORCE}&user=${USER}&password=${PASS}&ipv4=${IPV4}&domain=${DOMAIN}"
|
||||
# PAYLOAD_IPV4="force=${FORCE}&user=${USER}&password=${PASS}&ipv4=${IPV4}&domain=${DOMAIN}&mode=${MODE"
|
||||
# curl -X POST --data "${PAYLOAD_IPV4}" ${SCRIPT}
|
||||
|
||||
# PAYLOAD_IPV6="force=${FORCE}&user=${USER}&password=${PASS}&ipv6=${IPV6}&domain=${DOMAIN}"
|
||||
# PAYLOAD_IPV6="force=${FORCE}&user=${USER}&password=${PASS}&ipv6=${IPV6}&domain=${DOMAIN}&mode=${MODE"
|
||||
# curl -X POST --data "${PAYLOAD_IPV6}" ${SCRIPT}
|
||||
|
||||
PAYLOAD_BOTH="force=${FORCE}&user=${USER}&password=${PASS}&ipv4=${IPV4}&ipv6=${IPV6}&domain=${DOMAIN}"
|
||||
PAYLOAD_BOTH="force=${FORCE}&user=${USER}&password=${PASS}&ipv4=${IPV4}&ipv6=${IPV6}&domain=${DOMAIN}&mode=${MODE}"
|
||||
curl -X POST --data "${PAYLOAD_BOTH}" ${SCRIPT}
|
||||
|
|
|
@ -75,11 +75,11 @@ final class Handler
|
|||
if (!$this->config->isLog()) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (!file_exists($this->config->getLogFile())) {
|
||||
if (!touch($this->config->getLogFile())) {
|
||||
printf('[ERROR] unable to create %s %s', $this->config->getLogFile(), PHP_EOL);
|
||||
}
|
||||
if (!touch($this->config->getLogFile())) {
|
||||
printf('[ERROR] unable to create %s %s', $this->config->getLogFile(), PHP_EOL);
|
||||
}
|
||||
}
|
||||
|
||||
// save only the newest 100 log entries for each domain
|
||||
|
@ -125,7 +125,7 @@ final class Handler
|
|||
$changes = false;
|
||||
|
||||
foreach ($infoHandle->responsedata->dnsrecords as $key => $record) {
|
||||
$recordHostnameReal = ($record->hostname !== '@') ? $record->hostname . '.' . $this->payload->getHostname() : $this->payload->getHostname();
|
||||
$recordHostnameReal = (!in_array($record->hostname, $this->payload->getMatcher())) ? $record->hostname . '.' . $this->payload->getHostname() : $this->payload->getHostname();
|
||||
|
||||
if ($recordHostnameReal === $this->payload->getDomain()) {
|
||||
|
||||
|
@ -137,7 +137,7 @@ final class Handler
|
|||
)
|
||||
) {
|
||||
$record->destination = $this->payload->getIpv4();
|
||||
$this->doLog(sprintf('IPv4 for %s set to %s', $recordHostnameReal, $this->payload->getIpv4()));
|
||||
$this->doLog(sprintf('IPv4 for %s set to %s', $record->hostname . '.' . $this->payload->getHostname(), $this->payload->getIpv4()));
|
||||
$changes = true;
|
||||
}
|
||||
|
||||
|
@ -149,7 +149,7 @@ final class Handler
|
|||
)
|
||||
) {
|
||||
$record->destination = $this->payload->getIpv6();
|
||||
$this->doLog(sprintf('IPv6 for %s set to %s', $recordHostnameReal, $this->payload->getIpv6()));
|
||||
$this->doLog(sprintf('IPv6 for %s set to %s', $record->hostname . '.' . $this->payload->getHostname(), $this->payload->getIpv6()));
|
||||
$changes = true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,6 +19,11 @@ final class Payload
|
|||
*/
|
||||
private $domain;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $mode;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
|
@ -87,6 +92,23 @@ final class Payload
|
|||
return $this->domain;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function getMatcher()
|
||||
{
|
||||
switch ($this->mode) {
|
||||
case 'both':
|
||||
return ['@', '*'];
|
||||
|
||||
case '*':
|
||||
return ['*'];
|
||||
|
||||
default:
|
||||
return ['@'];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* there is no good way to get the correct "registrable" Domain without external libs!
|
||||
*
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue