Using the Cpanel::Accounting Perl module
The Cpanel::Accounting Perl module is designed to give applications that use Perl an easy way of manipulating accounts. If you are connecting to a remote server you need to set the usessl varible to 1. This module requires the Net::SSLeay Perl module to be installed.
Cpanel::Accounting supports the following methods:
new - Create a new Cpanel::Accounting Object.
showversion - Shows what version of WebHost Manager the remote server is running.
listaccts - Lists currently active accounts.
listpkgs - Lists packages avalible for creation.
addpkg - Add a package.
editpkg - Edit a package.
createacct - Creates a new account on the server.
killacct - Terminates an account on the server.
suspend - Suspends an account on the server.
unsuspend - Unsuspends an account on the server.
Below is a sample Perl program.
#!/usr/bin/perl BEGIN { push (@INC,"/usr/local/cpanel"); } use Cpanel::Accounting; my($whm) = Cpanel::Accounting->new; $whm->{host} = "localhost"; $whm->{user} = "<USERNAME HERE>"; $whm->{accesshash} = '<REMOTE ACCESS KEY HERE>'; $whm->{usessl} = 1; my %ACCTS = $whm->listaccts(); if ($whm->{error} ne "") { print "There was an error while processing your request: Cpanel::Accounting returned [$whm->{error}]\n"; exit; } #$name,$hasshell,$bwlimit,$quota,$ip,$cgi,$frontpage,$cpmod,$maxftp,$maxsql,$maxpop,$maxlst,$maxsub,$maxpark,$maxaddon $response = $whm->editpkg("testpkg2",0,50000,5000,0,1,1,"bluelagoon",10,10,10,10,10,10,10); if ($whm->{error} ne "") { print "There was an error while processing your request: Cpanel::Accounting returned [$whm->{error}]\n"; exit; } foreach $acct (sort keys %ACCTS) { @ACCTCT = @{$ACCTS{$acct}}; print "$acct @ACCTCT\n"; } $response = $whm->killacct("<USERNAME TO TERMINATE>"); if ($whm->{error} ne "") { print "There was an error while processing your request: Cpanel::Accounting returned [$whm->{error}]\n"; exit; } print $response; my %PKGS = $whm->listpkgs(); if ($whm->{error} ne "") { print "There was an error while processing your request: Cpanel::Accounting returned [$whm->{error}]\n"; exit; } foreach $package (sort keys %PKGS) { @PKCTS = @{$PKGS{$package}}; print "$package @PKCTS\n"; } $response = $whm->createacct("<DOMAIN NAME HERE>","<USERNAME HERE>","<PASSWORD HERE>","<PACKAGE HERE>"); if ($whm->{error} ne "") { print "There was an error while processing your request: Cpanel::Accounting returned [$whm->{error}]\n"; exit; } print $response; $response = $whm->suspend('<USERNAME HERE>'); if ($whm->{error} ne "") { print "There was an error while processing your request: Cpanel::Accounting returned [$whm->{error}]\n"; exit; } print $response . "\n"; $response = $whm->unsuspend('<USERNAME HERE>'); if ($whm->{error} ne "") { print "There was an error while processing your request: Cpanel::Accounting returned [$whm->{error}]\n"; exit } print $response . "\n";