Skip to content

Instantly share code, notes, and snippets.

@schlos
Forked from gentlecat/cloudflare.php
Created January 3, 2016 13:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save schlos/73ffdd412a9d2dee2864 to your computer and use it in GitHub Desktop.
Save schlos/73ffdd412a9d2dee2864 to your computer and use it in GitHub Desktop.
CloudFlare DNS records updater
<?php
/**
* Settings
*/
define('API_KEY', $_GET['apikey']); // CloudFlare API key
define('USERNAME', 'user@example.com'); // Email address used to login into CloudFlare
define('IP', getCurrentIP()); // Current IP address
echo 'Setting IP address to "' . IP . '"...<br />';
// Your web sites:
update('example.com');
update('example.net');
/**
* @return string Current IP address
*/
function getCurrentIP()
{
$source = "http://api.externalip.net/ip/";
return file_get_contents($source);
}
/**
* This function sends request to CloudFlare to change IP address of an A record with specific name
* @param $hostname Name of the record that needs to be updated
*/
function update($hostname)
{
echo "<br />Updating $hostname...<br />";
$update_url = 'https://www.cloudflare.com/api_json.html?a=DIUP&hosts='
. $hostname . '&u=' . USERNAME . '&tkn=' . API_KEY . '&ip=' . IP;
echo file_get_contents($update_url);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment