PDA

Bekijk Volledige Versie : dataverkeer en webruimte uitlezen



copyfile
11/04/07, 18:02
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 !

Kenneth
11/04/07, 19:10
Ja, met de API: CMD_API_SHOW_USER_USAGE

zie: http://directadmin.com/api.html

copyfile
11/04/07, 20:19
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 ?)

Rammboy
11/04/07, 22:02
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.

copyfile
11/04/07, 22:10
Ziet er netjes uit ! Alleen nog één vraagje. Er staat bovenaan het script include ("httpsocket.php") heb je deze mischien ook nog voor me ?

Kenneth
11/04/07, 22:46
http://www.directadmin.com/forum/showthread.php?threadid=258

die class heb je nodig

copyfile
11/04/07, 23:23
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 ?

groenleer
12/04/07, 08:06
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.

Eris
12/04/07, 09:45
Op regel 6 en 7 $sock2 vervangen door $sock (had deze error al verwacht)

t.bloo
12/04/07, 09:55
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 .

Rammboy
12/04/07, 10:27
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
?>

copyfile
12/04/07, 16:29
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 !!

Server00
12/04/07, 20:03
Dit is alleen webspace? je zocht toch ook voor traffic?

copyfile
12/04/07, 22:24
Ja klopt. Heb ik inmiddels ook toegevoegd. Staat op de genoemde pagina van DirectAdmin uitgelegd.