2017-09-07 4 views
0

J'essaie d'envoyer une liste d'utilisateurs à Xerox pour fins de comptabilité réseau.Comptabilité réseau Xerox (JBA) C70 envoi d'utilisateurs comptables

je le faire avec succès avec 2 modèles Xerox (Xerox WorkCentre 7556 et WorkCentre 7830), suivant le code sudo en PHP:

function SendUsersToXerox($ip,$users) 
{ 
    $url="{$ip}/acct/set_auth"; 
    $auth='account:jbaserve'; 
    $post="+aaav1.0\n+purge\n"; 

    foreach ($users as $u) 
    { 
     $post.="+u\"{$u->login}\"\"{$u->code}\"\n"; 
    } 

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_USERAGENT, 'EQ Device Control Engine'); 
    curl_setopt($ch,CURLOPT_POST, 1); 
    curl_setopt($ch,CURLOPT_POSTFIELDS,$post); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); 
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); 
    curl_setopt($ch, CURLOPT_FRESH_CONNECT, TRUE); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 5); 
    curl_setopt($ch, CURLOPT_USERPWD, "$auth"); 
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/xrx-acct-data']); 
    $data = curl_exec($ch); 
    $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
    curl_close($ch); 
// echo "HTTP CODE: {$httpcode}<br/>"; 
// echo $data; 
} 

Ce code fonctionne parfaitement sur ce qui précède le nom de Xerox, mais échoue sur le C70 avec une erreur 401 et le message suivant:

Invalid accounting authentication version 

la comptabilité du réseau est activé sur l'appareil, et je peux recueillir tous les travaux de l'imprimante à l'adresse ACCT/get_acct

Si je passe de mauvaises données de post, je reçois un message d'erreur différent:

HTTP Return 400 
The Request had invalid syntax 

Je ne trouve aucune référence à JBA ou comptable réseau partout et ne suis pas sûr de savoir comment savoir si le format a changé sur set_auth ou si c'est la différence de version qui doit être définie.

Je sais qu'il existe des différences dans la sortie get_acct qui pointe vers une version différente de la comptabilité.

Répondre

1

La réponse est très simple. Tout est correct, sauf les éléments suivants:

$post="+aaav1.0+\n+purge\n"; 

plus (+) après la v1.0 permet aux utilisateurs d'être téléchargées pour la comptabilité.