Using the Cpanel::Accounting Perl moduleThe Cpanel::Accounting perl module is designed to give programs that need access to create/remove/modify accounts an easy way to implement this in their perl program. For security reasons if you are connecting to a remote server you should set the usessl varible to 1. You must have the Net::SSLeay perl module installed for this to work. Cpanel::Accounting supports the following methods: new - Create a new Cpanel::Accounting Object. showversion - Shows what version of WHM the remote server is running. listaccts - Lists currently active accounts. listpkgs - Lists packages avalible for creation. 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;
}
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";
«
Back to WebHost Manager KB
|