// close cURL resource, and free up system resources curl_close($ch); $ip = trim(preg_replace('/\\s+/', ' ', $ip)); return $ip; } function updateIP($hostname, $newIP, $oldIP, $awszoneid, $type = 'A', $ttl = 60) { global $r53; $delete = $r53->prepareChange('DELETE', $hostname, $type, $ttl, $oldIP); $result = $r53->changeResourceRecordSets($awszoneid, $delete); $create = $r53->prepareChange('CREATE', $hostname, $type, $ttl, $newIP); $result = $r53->changeResourceRecordSets($awszoneid, $create); } //print_r($r53->listHostedZones()); //print_r($r53->getHostedZone($awszoneid)); $recordSet = $r53->listResourceRecordSets($awszoneid); //print_r($recordSet['ResourceRecordSets']); for ($i = 0; $i < count($recordSet['ResourceRecordSets']); $i++) { if ($recordSet['ResourceRecordSets'][$i]['Name'] == $hostname) { // print_r($recordSet['ResourceRecordSets'][$i]); // echo $recordSet['ResourceRecordSets'][$i]['Name']; $oldIP = $recordSet['ResourceRecordSets'][$i]['ResourceRecords'][0]; $type = $recordSet['ResourceRecordSets'][$i]['Type']; $ttl = $recordSet['ResourceRecordSets'][$i]['TTL']; // echo $oldIP; } } $newIP = getPublicIP(); if ($oldIP == $newIP) { // echo "No change necessary.\n"; } else {
$type = $_GET['type']; $new_ip = $_GET['newip']; $old_ip = ''; $record_type = ''; $record_ttl = ''; $route53 = ''; $recordSet = ''; $synology = $_GET['synology'] == '1' ? true : false; $debug = $_GET['debug'] == '1' ? true : false; /* Script Starts Below ------------------------------------------------------- */ require_once 'r53.php'; // Start a new instance $route53 = new Route53($aws_id, $aws_secret); // Define record set $recordSet = $route53->listResourceRecordSets('/hostedzone/' . $aws_zone); // Validate the authentication variables if (empty($aws_id) || empty($aws_secret) || empty($aws_zone) || empty($recordSet)) { if ($synology == true) { exit('(badauth)'); } else { exit('Failed. Your AWS credentials and Zone ID information is incorrect or incomplete.'); } } // Search for the old IP address for ($i = 0; $i < count($recordSet['ResourceRecordSets']); $i++) { if ($debug == true) { echo '<b>Host:</b> ' . $recordSet['ResourceRecordSets'][$i]['Name'] . '<br />'; echo '<b>Host Value:</b> ' . $recordSet['ResourceRecordSets'][$i]['ResourceRecords'][0] . '<br />'; echo '<b>Type:</b> ' . $recordSet['ResourceRecordSets'][$i]['Type'] . '<br />'; echo '<b>TTL (sec):</b> ' . $recordSet['ResourceRecordSets'][$i]['TTL'] . '<br />';