Solved

cPanel / WHM Api example

Posted on 2010-09-04
8
2,679 Views
Last Modified: 2012-05-10
Can someone please help me with a working example to use the CPanel / WHM Api.

I would like to update the A record for a particular domain hosted in cPanel / WHM through API.

0
Comment
Question by:nainil
  • 4
  • 4
8 Comments
 
LVL 21

Expert Comment

by:Julian Matz
Comment Utility
Hello,

Using the cPanel XML API can be as easy as making a call to:

https://example.com:2087/xml-api/editzonerecord?domain=example.com&Line=2&ttl=86400

This will return a result in XML format, eg:

<cpanelresult>
    <data>
        <result>0</result>
        <reason>Access denied</reason>
    </data>
</cpanelresult>

This result, for example would tell you that the command failed (result=0) because access was denied (reason="Access denied").

To make the API call, you can use any number of programming languages like PHP, Perl, ASP. My choice would be PHP, and I would use curl to make.

http://php.net/manual/en/book.curl.php

Another option would be to simply download an existing cPanel API PHP class and either use it as is or modify it to suit your exact needs. Here's an example:
http://www.phpclasses.org/package/3534-PHP-List-and-manage-details-of-cPanel-hosting-accounts.html

But what scripting language did you have in mind for this?
0
 

Author Comment

by:nainil
Comment Utility
Thank you julianmatz. Sorry for the incomplete information.

I want to implement the same using PHP/MySQL.

The Class you suggested does all except the DNS. I will try to look at the same and try to get the DNS manipulation function. But, if someone can get me a working example for DNS manipulation.

Thanks.
0
 
LVL 21

Accepted Solution

by:
Julian Matz earned 500 total points
Comment Utility
If you use the XML PHP API from cpanel.net, you'll be able to edit your DNS using the example below. Here's a link to the API:

http://sdk.cpanel.net/lib/xmlapi/php/cp_xmlapi_php_v1.0.6.tar.gz
<?php

include("../xmlapi.php");

$ip = getenv('REMOTE_HOST');
$root_pass = getenv('REMOTE_PASSWORD');

$xmlapi = new xmlapi($ip);
$xmlapi->password_auth("root",$root_pass);

$xmlapi->set_debug(1);

$zone = 'example.com';
$Line = '1';

$args = array(
		  'address'=>'123.456.789.10',
		  'class'=>'IN',
		  'type'=>'A',
		  'ttl'=>'86400'
	);


print $xmlapi->editzonerecord($zone,$Line,$args);

?>

Open in new window

0
 

Author Comment

by:nainil
Comment Utility
This is an incredible find. Thank you.

I am using the original file and examples. however, on Windows 7, (using WAMP), I get the following error:

Warning: file_get_contents(https://localcpanel.com/xml-api/listaccts) [function.file-get-contents]: failed to open stream: Invalid argument in C:\wamp\www\xmlapi.php on line 731

Any idea how to fix the same?
0
Find Ransomware Secrets With All-Source Analysis

Ransomware has become a major concern for organizations; its prevalence has grown due to past successes achieved by threat actors. While each ransomware variant is different, we’ve seen some common tactics and trends used among the authors of the malware.

 

Author Comment

by:nainil
Comment Utility
Also, the code works fine on Linux. So this is a Windows only issue apparently.
0
 
LVL 21

Expert Comment

by:Julian Matz
Comment Utility
I'm not a Windows expert, but I think the error may have something to do with the SSL encryption (https). See if you can get these two DLLs from the PHP5 distribution:

libeay32.dll
ssleay32.dll
0
 

Author Comment

by:nainil
Comment Utility
Just found that I did not have Curl setup. It worked fine once I worked on that piece. Thank you.
0
 
LVL 21

Expert Comment

by:Julian Matz
Comment Utility
Glad I was able to help. Good luck with your API!
0

Featured Post

Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

Join & Write a Comment

If your site has a few sections that need to be secure when data is transmitted between the server and local computer, such as a /order/ section for ordering or /customer/ which contains customer data, etc it would of course be recommended to secure…
Since pre-biblical times, humans have sought ways to keep secrets, and share the secrets selectively.  This article explores the ways PHP can be used to hide and encrypt information.
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
The viewer will learn how to count occurrences of each item in an array.

771 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now