A PHP Binding to the Rackspace Cloud DNS API Created by Original Webware Limited for internal use, since no public php API lib was out at that time avalible we released the code with permission of the original auther of the cloudFiles php lib that the core code came from (the comunicating with rackspace bit)
Rackspace DNS PHP API …
This PHP Libary is supported by Original Webware Limited
please register any issues to: https://github.com/snider/php-cloudDNS/issues/
Copyright © 2011 Original Webware Limited
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see http://www.gnu.org/licenses/gpl-3.0.txt.
@author Paul Lashbrook - OriginalWebware.com
@contributor Alon Ben David @ CoolGeex.com
@contributor zeut @ GitHub - reported a fix for limiting… totally forgot that bit!
@contributor idfbobby @ github - updated the create_domain() function to include comments and ttl
CHANGES
27/3/2012 Reported by Zeut
26/3/2012 Reported by Zeut, fixed by Paul Lashbrook
08/09/2011 Paul Lashbrook
30/08/2011 Alon Ben David @ CoolGeex.com
This is strictly for PHP5 since PHP4 should be forgotten forever.
PLEASE NOTE: any help suggestions/requests welcome
Server communication code originally from and slightly adapted,
thanks to the work of that author making this was relatively easy
you made get errors trying to establish an ssl conection to rackspace,
if you get this you have a old version of Curl installed meaning the CA list is outdated.
just run $dns->set_cabundle(true); before you try to do a API action
@link http://snider.github.com/php-cloudDNS/
via https://github.com/eyecreate/Rackspace-Cloud-PHP-Library
All API Methods Implemented So Far: Check sample.php for code sample
$dns = new rackDNS($rs_user,$rs_api_key); //($user, $key, $endpoint = ‘UK’) $endpoint can be UK or US
// Show all domains avalible
$dns->list_domains(50,0); //($limit = 10, $offset = 0)
$dns->list_subdomains($sampleID);//($domainID)
$dns->domain_export($sampleID);//($domainID)
$dns->list_records($sampleID);//($domainID)
$dns->list_record_details($sampleID,$recID);//($domainID,$recordID)
$dns->domain_import($sampleImport);
$dns->list_domain_search(‘domain.com’);
$dns->modify_domain($sampleID,‘info@domain.com’); //($domainID = false , $email = false , $ttl = 86400 , $comment = ‘Modify Domain Using rackDNS API’)
$dns->delete_domains($sampleID);
$dns->delete_domain_record($domainID,$recordID)
$dns->list_domain_details($domainID = false, $showRecords = false, $showSubdomains = false);
$dns->import_domain(‘domain.com’);
$dns->create_domain($name = false, $email = false, $records = array());
$dns->create_domain_record($domainID = false, $records = array());
$dns->create_domain_record_helper($type = false, $name = false, $data = false, $ttl = 86400, $priority = false);
example use:
$dns = new rackDNS(RS_USER,RS_API_KEY);
// make a new dns zone
$records = array($dns->create_domain_record_helper(‘MX’,‘originalwebware.com’,‘mail.originalwebware.com’,86400,2),
$dns->create_domain_record_helper(‘a’,‘originalwebware.com’,‘192.168.0.1’,86400));
name, email, comment, ttl, records
$results = $dns->create_domain(‘originalwebware.com’, ‘paul@originalwebware.com’, ‘a comment’, 3600, $records);
// add a new record(s) to a dns zone
$records = array($dns->create_domain_record_helper(‘MX’,‘originalwebware.co.uk’,‘mail.originalwebware.co.uk’,86400,2),
$dns->create_domain_record_helper(‘a’,‘originalwebware.co.uk’,‘192.168.0.1’,86400));
$results = $dns->create_domain_record(123456,$records);
$dns->getLastResponseStatus(); //returns status code
$dns->getLastResponseMessage();//returns status message