Solved

cPanel / WHM Api example

Posted on 2010-09-04
8
2,907 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 4
8 Comments
 
LVL 21

Expert Comment

by:Julian Matz
ID: 33604857
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
ID: 33605148
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
ID: 33607175
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
Raise the IQ of Your IT Alerts

From IT major incidents to manufacturing line slowdowns, every business process generates insights that need to reach the people required to take action. You need a platform that integrates with your business tools to create fully enabled DevOps toolchains.

You need xMatters.

 

Author Comment

by:nainil
ID: 33608128
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
 

Author Comment

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

Expert Comment

by:Julian Matz
ID: 33608877
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
ID: 33614577
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
ID: 33619304
Glad I was able to help. Good luck with your API!
0

Featured Post

Comprehensive Backup Solutions for Microsoft

Acronis protects the complete Microsoft technology stack: Windows Server, Windows PC, laptop and Surface data; Microsoft business applications; Microsoft Hyper-V; Azure VMs; Microsoft Windows Server 2016; Microsoft Exchange 2016 and SQL Server 2016.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

These days socially coordinated efforts have turned into a critical requirement for enterprises.
Introduction This article is intended for those who are new to PHP error handling (https://www.experts-exchange.com/articles/11769/And-by-the-way-I-am-New-to-PHP.html).  It addresses one of the most common problems that plague beginning PHP develop…
Learn how to match and substitute tagged data using PHP regular expressions. Demonstrated on Windows 7, but also applies to other operating systems. Demonstrated technique applies to PHP (all versions) and Firefox, but very similar techniques will w…
The viewer will learn how to create a basic form using some HTML5 and PHP for later processing. Set up your basic HTML file. Open your form tag and set the method and action attributes.: (CODE) Set up your first few inputs one for the name and …

691 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