diff --git a/.env-default b/.env-default index a830def..37b4748 100644 --- a/.env-default +++ b/.env-default @@ -2,3 +2,5 @@ DYNDNS_USER="" DYNDNS_PASSWORD="" DYNDNS_DOMAIN_UPDATE="" LOCAL=false +REAL_PUBLIC_IP_SERVICE="http://hosting.ovh.net" +DNS_UPDATE_SRC="https://apis.com/hostname={toUpdateHostname}&myip={realPublicIp}" \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 5476273..fbe9d80 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -12,8 +12,5 @@ services: - ./project:/var/www/html - ./logs/:/var/log/cron - ./service/logrotate:/etc/logrotate.d/cron-log - environment: - DYNDNS_USER: "${DYNDNS_USER}" - DYNDNS_PASSWORD: "${DYNDNS_PASSWORD}" - DYNDNS_DOMAIN_UPDATE: "${DYNDNS_DOMAIN_UPDATE}" - LOCAL: "${LOCAL}" + env_file: + - .env \ No newline at end of file diff --git a/project/updateip.php b/project/updateip.php index c3baba0..5335897 100644 --- a/project/updateip.php +++ b/project/updateip.php @@ -11,8 +11,23 @@ if (isset($_ENV['LOCAL']) && $_ENV['LOCAL']) { $lines[] = "die in local"; $canUpdate = false; } -// old -// https://www.duckdns.org/update?domains=rhost.duckdns.org&token=1b4ab267-b818-4407-8351-8800c6f4fd78 +$needEnvKeys = [ + "REAL_PUBLIC_IP_SERVICE","DYNDNS_DOMAIN_UPDATE","DYNDNS_USER","DYNDNS_PASSWORD","DNS_UPDATE_SRC" +]; +$emptyEnvKeys = []; + +foreach ($needEnvKeys as $needEnvKey) { + if (!isset($_ENV[$needEnvKey])) { + $emptyEnvKeys[] = $needEnvKey; + } +} + +if (count($emptyEnvKeys) > 0) { + $canUpdate = false; + $lines[] = "Empty env configuration!"; + $lines[] = "The following env configuration keys are missing:\n"; + $lines[] = implode(", ", $emptyEnvKeys); +} if ($canUpdate) { $toUpdateString = $_ENV['DYNDNS_DOMAIN_UPDATE']; @@ -25,7 +40,7 @@ if ($canUpdate) { $toUpdateArray = explode(",", $toUpdateString); $useragent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.89 Safari/537.36'; $ch = curl_init(); - curl_setopt($ch, CURLOPT_URL, "http://rhostoh.cluster029.hosting.ovh.net/"); + curl_setopt($ch, CURLOPT_URL, $_ENV['REAL_PUBLIC_IP_SERVICE']); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_USERAGENT, $useragent); curl_setopt($ch, CURLOPT_MAXREDIRS, 10); @@ -46,8 +61,10 @@ if ($canUpdate) { $lines[] = "$toUpdate: same (not update)"; continue; } - $url = "https://dns.eu.ovhapis.com/nic/update?system=dyndns&hostname=$toUpdate&myip=$serverIp"; - + $url = strtr($_ENV['DNS_UPDATE_SRC'],[ + "{toUpdateHostname}" => $toUpdate, + "{realPublicIp}" => $serverIp, + ]); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);