Bekijk Volledige Versie : dataverkeer en webruimte uitlezen
Ik vroeg me af of er een mogelijkheid is om met php het dataverkeer en de webruimte die iemand heeft gebruikt uit te lezen. Nu zie je dit gewoon in directadmin staan maar zou dit graag via een script uitlezen. Alvast bedankt !
Ja, met de API: CMD_API_SHOW_USER_USAGE
zie: http://directadmin.com/api.html
Enig idee hoe ik dit dan goed kan toepassen in een script ? Want snap het nog niet helemaal. (ben trouwens zelf reseller weet niet of dat een probleem is ?)
Alstublieft, kant en klaar :
<?php
$klant="username"; //hier komt de username van de klant
include"httpsocket.php";
$sock = new HTTPSocket; //socket 1 om te bepalen wat er verbrukt is
$sock2->connect('domein.be','2222'); //uw domein
$sock2->set_login('adminofresellerusername','wachtwoord'); //uw login
$sock->query('/CMD_API_SHOW_USER_USAGE',
array('user' => $klant));
$result = $sock->fetch_parsed_body();
$sock2 = new HTTPSocket; // socket 2 om te bepalen wat de limieten zijn
$sock2->connect('domein.be','2222'); // uw domein
$sock2->set_login('adminofresellerusername','wachtwoord'); //uw login
$sock2->query('/CMD_API_SHOW_USER_CONFIG',
array('user' => $klant));
$result2 = $sock2->fetch_parsed_body();
echo"verbruikt: ".$result['quota']." max: ".$result2['quota']; //result quota is dus de verbruikte ruimte en quota 2 de limiet
?>
de rest (dataverkeer, sql etc kan je makkelijk uit de directadmin API pagina halen zoals hiervoor gezegt. Reseller zijn is geen probleem, ik heb het vroeger nog als reseller gebruikt.
Ziet er netjes uit ! Alleen nog één vraagje. Er staat bovenaan het script include ("httpsocket.php") heb je deze mischien ook nog voor me ?
http://www.directadmin.com/forum/showthread.php?threadid=258
die class heb je nodig
Aha kijk. Heb het geprobeerd maar krijg nu de volgende melding :
Fatal error: Call to a member function connect() on a non-object in /home/datawrite/domains/datawrite.nl.tt/public_html/da_data.php on line 6
Ik heb als domein op die regel ingevult het ip adres waarop ook directadmin te berijken is. Dit omdat ik tijdelijk met een test pakket werk zonder domeinnaam. Wat zou het probleem kunnen zijn ?
Aha kijk. Heb het geprobeerd maar krijg nu de volgende melding :
Fatal error: Call to a member function connect() on a non-object in /home/datawrite/domains/datawrite.nl.tt/public_html/da_data.php on line 6
Ik heb als domein op die regel ingevult het ip adres waarop ook directadmin te berijken is. Dit omdat ik tijdelijk met een test pakket werk zonder domeinnaam. Wat zou het probleem kunnen zijn ?
Even goed opletten, regel er boven staat nog $sock = new HTTPsocket;
En de regel waar het fout op gaat zegt $sock2->connect, het probleem is dat $sock2 nog niet bestaat en al helemaal geen object is op dat moment.
Ik neem aan dat je het met deze informatie kunt oplossen. MOcht je dat nog niet kunnen wil ik je ten zeerste aanraden om eerst een cursus php te gaan doen en je in te lezen in objecten en declaraties.
Op regel 6 en 7 $sock2 vervangen door $sock (had deze error al verwacht)
Iets soortgelijks is te vinden op http://www.webhostingtalk.nl/directadmin/109776-traffic-verbruikt-users-zien.html
Dit kun je scripten met de API. Ik heb hier een simpel tooltje voor:
http://www.dommelhosting.nl/dahistory
connecting to https://server.domain.tld:2222
result of CMD_API_SHOW_ALL_USERS and CMD_API_USER_HISTORY commands:
user/month traffic [MB] disk [MB]
user1
2006_08 3.850000 18.800000
2006_09 2.900000 18.800000
2006_10 3.260000 18.800000
2006_11 2.640000 18.800000
2006_12 3.900000 19.000000
user2
2006_04 238.500000 198.700000
2006_05 50.100000 225.200000
2006_06 93.900000 226.900000
2006_07 38.400000 227.800000
2006_08 55.900000 228.100000
2006_09 72.800000 426.200000
2006_10 154.600000 308.100000
2006_11 54.300000 417.200000
2006_12 162.000000 383.400000
user3
2006_11 0.215100 0.203100
2006_12 0.000000 0.203100
Je kunt de source van het script daar downloaden. Misschien maak ik er wel een keer een plugin van .
Ja, sorry had het gisteren ff snel ineen geflanst (copy-paste:p ) zo moet het zijn:
<?php
$klant="username"; //hier komt de username van de klant
include"httpsocket.php";
$sock = new HTTPSocket; //socket 1 om te bepalen wat er verbrukt is
$sock->connect('domein.be','2222'); //uw domein
$sock->set_login('adminofresellerusername','wachtwoord'); //uw login
$sock->query('/CMD_API_SHOW_USER_USAGE',
array('user' => $klant));
$result = $sock->fetch_parsed_body();
$sock2 = new HTTPSocket; // socket 2 om te bepalen wat de limieten zijn
$sock2->connect('domein.be','2222'); // uw domein
$sock2->set_login('adminofresellerusername','wachtwoord'); //uw login
$sock2->query('/CMD_API_SHOW_USER_CONFIG',
array('user' => $klant));
$result2 = $sock2->fetch_parsed_body();
echo"verbruikt: ".$result['quota']." max: ".$result2['quota']; //result quota is dus de verbruikte ruimte en quota 2 de limiet
?>
Het is gelukt. Bedankt ! Had echt niet gezien dat er bij de 1e achter sock een "2" stond. Anders had ik het probleem wel begrepen. Maar bedankt allemaal voor de hulp !!
Dit is alleen webspace? je zocht toch ook voor traffic?
Ja klopt. Heb ik inmiddels ook toegevoegd. Staat op de genoemde pagina van DirectAdmin uitgelegd.