Skip to content

Commit 49a41d2

Browse files
authored
Merge pull request #3 from davtur19/patch-1
fix indentation
2 parents 03d5695 + 9c88c8b commit 49a41d2

1 file changed

Lines changed: 52 additions & 48 deletions

File tree

cloudflare-ddns.php

Lines changed: 52 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
<?php
2+
23
define('CLOUDFLARE_API_KEY', 'Your cloudflare api key');
34
define('CLOUDFLARE_EMAIL', 'Your cloudflare email');
45
define('DOMAIN', 'example.com');
@@ -9,64 +10,67 @@
910

1011

1112

12-
13-
14-
15-
16-
echo 'Cloudflare API Key: '.CLOUDFLARE_API_KEY.PHP_EOL.'Cloudflare email: '.CLOUDFLARE_EMAIL.PHP_EOL.'Domain: '.DOMAIN.PHP_EOL.'Record: '.CLOUDFLARE_RECORD.PHP_EOL.'Check every '.CHECK_SECONDS.' seconds.'.PHP_EOL.'Status: ';
13+
echo 'Cloudflare API Key: ' . CLOUDFLARE_API_KEY . PHP_EOL . 'Cloudflare email: ' . CLOUDFLARE_EMAIL . PHP_EOL . 'Domain: ' . DOMAIN . PHP_EOL . 'Record: ' . CLOUDFLARE_RECORD . PHP_EOL . 'Check every ' . CHECK_SECONDS . ' seconds.' . PHP_EOL . 'Status: ';
1714
$ch = curl_init();
18-
curl_setopt($ch, CURLOPT_URL, 'https://api.cloudflare.com/client/v4/zones?name='.urlencode(DOMAIN));
15+
curl_setopt($ch, CURLOPT_URL, 'https://api.cloudflare.com/client/v4/zones?name=' . urlencode(DOMAIN));
1916
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
2017
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
2118
$headers = array();
22-
$headers[] = 'X-Auth-Email: '.CLOUDFLARE_EMAIL;
23-
$headers[] = 'X-Auth-Key: '.CLOUDFLARE_API_KEY;
19+
$headers[] = 'X-Auth-Email: ' . CLOUDFLARE_EMAIL;
20+
$headers[] = 'X-Auth-Key: ' . CLOUDFLARE_API_KEY;
2421
$headers[] = 'Content-Type: application/json';
2522
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
2623
$result = json_decode(curl_exec($ch), true);
2724
curl_close($ch);
2825
if (isset($result['result'][0]['id'])) {
29-
define('CLOUDFLARE_ID', $result['result'][0]['id']);
30-
$ch = curl_init();
31-
curl_setopt($ch, CURLOPT_URL, 'https://api.cloudflare.com/client/v4/zones/'.CLOUDFLARE_ID.'/dns_records?type=A&name='.urlencode(CLOUDFLARE_RECORD));
32-
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
33-
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
34-
$headers = array();
35-
$headers[] = 'X-Auth-Email: '.CLOUDFLARE_EMAIL;
36-
$headers[] = 'X-Auth-Key: '.CLOUDFLARE_API_KEY;
37-
$headers[] = 'Content-Type: application/json';
38-
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
39-
$result = json_decode(curl_exec($ch), true);
40-
curl_close($ch);
41-
if (isset($result['result'][0]['id'])) {
42-
define('CLOUDFLARE_RECORD_ID', $result['result'][0]['id']);
43-
$oldIp = $result['result'][0]['content'];
44-
echo 'Running'.PHP_EOL;
45-
while (true) {
46-
$ip = file_get_contents('https://ipv4.myip.info/');
47-
if (filter_var($ip, FILTER_VALIDATE_IP) and $ip !== $oldIp) {
48-
$ch = curl_init();
49-
curl_setopt($ch, CURLOPT_URL, 'https://api.cloudflare.com/client/v4/zones/'.CLOUDFLARE_ID.'/dns_records/'.CLOUDFLARE_RECORD_ID);
50-
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
51-
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(array('type' => 'A', 'name' => CLOUDFLARE_RECORD, 'content' => $ip, 'proxied' => CLOUDFLARE_RECORD_PROXIED)));
52-
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
53-
$headers = array();
54-
$headers[] = 'X-Auth-Email: '.CLOUDFLARE_EMAIL;
55-
$headers[] = 'X-Auth-Key: '.CLOUDFLARE_API_KEY;
56-
$headers[] = 'Content-Type: application/json';
57-
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
58-
$result = json_decode(curl_exec($ch), true);
59-
curl_close($ch);
60-
if ($result['success']) {
61-
echo "\nRecord updated.\nOld IP: $oldIp\nNew IP: $ip\n";
62-
$oldIp = $ip;
26+
define('CLOUDFLARE_ID', $result['result'][0]['id']);
27+
$ch = curl_init();
28+
curl_setopt($ch, CURLOPT_URL,
29+
'https://api.cloudflare.com/client/v4/zones/' . CLOUDFLARE_ID . '/dns_records?type=A&name=' . urlencode(CLOUDFLARE_RECORD));
30+
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
31+
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
32+
$headers = array();
33+
$headers[] = 'X-Auth-Email: ' . CLOUDFLARE_EMAIL;
34+
$headers[] = 'X-Auth-Key: ' . CLOUDFLARE_API_KEY;
35+
$headers[] = 'Content-Type: application/json';
36+
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
37+
$result = json_decode(curl_exec($ch), true);
38+
curl_close($ch);
39+
if (isset($result['result'][0]['id'])) {
40+
define('CLOUDFLARE_RECORD_ID', $result['result'][0]['id']);
41+
$oldIp = $result['result'][0]['content'];
42+
echo 'Running' . PHP_EOL;
43+
while (true) {
44+
$ip = file_get_contents('https://ipv4.myip.info/');
45+
if (filter_var($ip, FILTER_VALIDATE_IP) and $ip !== $oldIp) {
46+
$ch = curl_init();
47+
curl_setopt($ch, CURLOPT_URL,
48+
'https://api.cloudflare.com/client/v4/zones/' . CLOUDFLARE_ID . '/dns_records/' . CLOUDFLARE_RECORD_ID);
49+
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
50+
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(array(
51+
'type' => 'A',
52+
'name' => CLOUDFLARE_RECORD,
53+
'content' => $ip,
54+
'proxied' => CLOUDFLARE_RECORD_PROXIED
55+
)));
56+
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
57+
$headers = array();
58+
$headers[] = 'X-Auth-Email: ' . CLOUDFLARE_EMAIL;
59+
$headers[] = 'X-Auth-Key: ' . CLOUDFLARE_API_KEY;
60+
$headers[] = 'Content-Type: application/json';
61+
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
62+
$result = json_decode(curl_exec($ch), true);
63+
curl_close($ch);
64+
if ($result['success']) {
65+
echo "\nRecord updated.\nOld IP: $oldIp\nNew IP: $ip\n";
66+
$oldIp = $ip;
67+
}
68+
}
69+
sleep(CHECK_SECONDS);
6370
}
64-
}
65-
sleep(CHECK_SECONDS);
71+
} else {
72+
die('Record not found.' . PHP_EOL);
6673
}
67-
} else {
68-
die('Record not found.'.PHP_EOL);
69-
}
7074
} else {
71-
die('Error.'.PHP_EOL);
75+
die('Error.' . PHP_EOL);
7276
}

0 commit comments

Comments
 (0)