Bonjour,
j'essaie d'implémenter une classe client ipp (internet printing
protocol) en php.
Problème : les requêtes passent en GET (je me fais jeter du serveur
poliment parce que "je ne suis pas autorisé à utiliser la ressource"),
mais pas en POST (réponse : HTTP/1.1 400 Bad Request blah blah).
J'ai pourtant sniffé le trafic d'une requête de client IPP existant
(lp), et celui-ci passe en POST (ce qui est plutôt normal, vu que le but
est d'imprimer un fichier, pas de récupérer une resource. C'est long, un
fichier...).
S'il y a des demandes, je mettrait les captures d'ethereal sur ma page
perso.
Ci-dessous, le code : (j'ai wrappé certaines lignes pour les news,
désolé si le résultat n'est pas très propre...)
#########################################
public function printJob($queue){
//Private static function prints waiting jobs on the queue.
//$this->printWaiting($queue);
//Open a new connection to send the control file and data.
$stream = stream_socket_client("tcp://".$this->host.":"
.$this->port, $this->errNo, $this->errStr, $this->timeout);
if(!$stream){
return $this->errNo." (".$this->errStr.")";
} else {
$job = self::getJobId();//Get a new id for this job
$string = 0x0101 // 1.1 version-number
. 0x0002 // Print-Job operation-id
. 0x00000001 // 1 request-id
. 0x01 // start operation-attributes
//operation-attributes-tag
. 0x47 // charset type
//value-tag
. 0x0012 // name-length
. "attributes-charset" // attributes-charset name
. 0x0008 // value-length
. "us-ascii" // US-ASCII value
. 0x48 // natural-language type value-tag
. 0x001B // name-length
. "attributes-natural-language"
//attributes-natural-language
. 0x0005 // value-length
. "en-us" // en-US value
. 0x45 // uri type value-tag
. 0x000B // name-length
. "printer-uri" // printer-uri name
. "0x0005"
. "epson"
// . 0x0014 // value-length
// . "ipp://localhost/epson" // printer epson value
. 0x42 // nameWithoutLanguage type value-tag
. 0x0008 // name-length
. "job-name" // job-name name
. 0x0004 // value-length
. "toto" // toto value
. 0x22 // boolean type value-tag
. 0x0016 // name-length
. "ipp-attribute-fidelity"
// ipp-attribute-fidelity name
. 0x0001 // value-length
. 0x01 // true value
. 0x02 // start job-attributes
//job-attributes-tag
. 0x21 // integer type value-tag
. 0x0006 // name-length
. "copies" // copies name
. 0x0004 // value-length
. 0x00000001 // 1 value
. 0x44 // keyword type value-tag
. 0x0005 // name-length
. "sides" // sides name
. 0x0009 // value-length
. "one-sided" // one-sided value
. 0x03 // end-of-attributes end-of-attributes-tag
. "test";
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Thomas Harding
Le 10-12-2005, Thomas Harding a écrit:
Bonjour, j'essaie d'implémenter une classe client ipp (internet printing protocol) en php.
Problème : les requêtes passent en GET (je me fais jeter du serveur poliment parce que "je ne suis pas autorisé à utiliser la ressource"), mais pas en POST (réponse : HTTP/1.1 400 Bad Request blah blah). [snip]
. 0x0001 // value-length
Bon, ben php n'est pas très pratique : pour envoyer 0x0001 il faut faire chr(0x00) . chr(0x01).
Je me retrouve maintenant avec des réponses HTTP 200 OK :)
Par contre, toujours pas d'impression, mais je travaille dessus...
-- Thomas Harding
Le 10-12-2005, Thomas Harding <thomas.harding@wanadoo.fr> a écrit:
Bonjour,
j'essaie d'implémenter une classe client ipp (internet printing
protocol) en php.
Problème : les requêtes passent en GET (je me fais jeter du serveur
poliment parce que "je ne suis pas autorisé à utiliser la ressource"),
mais pas en POST (réponse : HTTP/1.1 400 Bad Request blah blah).
[snip]
. 0x0001 // value-length
Bon, ben php n'est pas très pratique : pour envoyer 0x0001 il faut faire
chr(0x00) . chr(0x01).
Je me retrouve maintenant avec des réponses HTTP 200 OK :)
Par contre, toujours pas d'impression, mais je travaille dessus...
Bonjour, j'essaie d'implémenter une classe client ipp (internet printing protocol) en php.
Problème : les requêtes passent en GET (je me fais jeter du serveur poliment parce que "je ne suis pas autorisé à utiliser la ressource"), mais pas en POST (réponse : HTTP/1.1 400 Bad Request blah blah). [snip]
. 0x0001 // value-length
Bon, ben php n'est pas très pratique : pour envoyer 0x0001 il faut faire chr(0x00) . chr(0x01).
Je me retrouve maintenant avec des réponses HTTP 200 OK :)
Par contre, toujours pas d'impression, mais je travaille dessus...
-- Thomas Harding
Mathieu Goutelle
Bonsoir,
Dans l'article , Thomas Harding a écrit :
j'essaie d'implémenter une classe client ipp (internet printing protocol) en php.
Rapport avec fr.comp.reseaux.ip ? Votre question a sa place soit sur fr.comp.lang.php, soit sur le fr.comp.infosystemes.www.* adapté.
Cordialement, -- Q: Connaissez-vous la différence entre l'ignorance et l'apathie ? R: J'en sais rien et je m'en fous. Mathieu Goutelle - http://www.cadichonne.net/
Bonsoir,
Dans l'article <3orr63-sdo.ln1@geekette.loc>, Thomas Harding a écrit :
j'essaie d'implémenter une classe client ipp (internet printing
protocol) en php.
Rapport avec fr.comp.reseaux.ip ? Votre question a sa place soit sur
fr.comp.lang.php, soit sur le fr.comp.infosystemes.www.* adapté.
Cordialement,
--
Q: Connaissez-vous la différence entre l'ignorance et l'apathie ?
R: J'en sais rien et je m'en fous.
Mathieu Goutelle - http://www.cadichonne.net/
j'essaie d'implémenter une classe client ipp (internet printing protocol) en php.
Rapport avec fr.comp.reseaux.ip ? Votre question a sa place soit sur fr.comp.lang.php, soit sur le fr.comp.infosystemes.www.* adapté.
Cordialement, -- Q: Connaissez-vous la différence entre l'ignorance et l'apathie ? R: J'en sais rien et je m'en fous. Mathieu Goutelle - http://www.cadichonne.net/
Thomas Harding
Le 11-12-2005, Mathieu Goutelle a écrit :
j'essaie d'implémenter une classe client ipp (internet printing protocol) en php.
Rapport avec fr.comp.reseaux.ip ? Votre question a sa place soit sur fr.comp.lang.php, soit sur le fr.comp.infosystemes.www.* adapté.
IPP (Internet Printing Protocol) <> HTTP
IPP utilise HTTP pour le transport, mais ça s'arrête là :)
Voir RFC 2910.
-- Thomas Harding
Le 11-12-2005, Mathieu Goutelle <mgoutell@alussinan.org> a écrit :
j'essaie d'implémenter une classe client ipp (internet printing
protocol) en php.
Rapport avec fr.comp.reseaux.ip ? Votre question a sa place soit sur
fr.comp.lang.php, soit sur le fr.comp.infosystemes.www.* adapté.
IPP (Internet Printing Protocol) <> HTTP
IPP utilise HTTP pour le transport, mais ça s'arrête là :)
j'essaie d'implémenter une classe client ipp (internet printing protocol) en php.
Rapport avec fr.comp.reseaux.ip ? Votre question a sa place soit sur fr.comp.lang.php, soit sur le fr.comp.infosystemes.www.* adapté.
IPP (Internet Printing Protocol) <> HTTP
IPP utilise HTTP pour le transport, mais ça s'arrête là :)
Voir RFC 2910.
-- Thomas Harding
Mathieu Goutelle
Bonjour,
Dans l'article , Thomas Harding a écrit :
IPP (Internet Printing Protocol) <> HTTP
IPP utilise HTTP pour le transport, mais ça s'arrête là :)
Ça n'a toujours rien à voir avec IP...
-- Q: Connaissez-vous la différence entre l'ignorance et l'apathie ? R: J'en sais rien et je m'en fous. Mathieu Goutelle - <URL:http://www.cadichonne.net/>
Bonjour,
Dans l'article <nsgu63-ou7.ln1@geekette.loc>, Thomas Harding a écrit :
IPP (Internet Printing Protocol) <> HTTP
IPP utilise HTTP pour le transport, mais ça s'arrête là :)
Ça n'a toujours rien à voir avec IP...
--
Q: Connaissez-vous la différence entre l'ignorance et l'apathie ?
R: J'en sais rien et je m'en fous.
Mathieu Goutelle - <URL:http://www.cadichonne.net/>
IPP utilise HTTP pour le transport, mais ça s'arrête là :)
Ça n'a toujours rien à voir avec IP...
-- Q: Connaissez-vous la différence entre l'ignorance et l'apathie ? R: J'en sais rien et je m'en fous. Mathieu Goutelle - <URL:http://www.cadichonne.net/>
Pascal
Salut,
IPP (Internet Printing Protocol) <> HTTP
IPP utilise HTTP pour le transport, mais ça s'arrête là :)
Ça n'a toujours rien à voir avec IP...
La charte accepte pourtant "les protocoles sans groupes dédié: NTP, BIND, TCP, UDP, NetBios surIP... ainsi que les RFCs relatives et leur implémentation". IPP me semble bien rentrer dans la définition.
Sinon tu proposerais quoi ? fr.comp.infosystemes ?
Salut,
IPP (Internet Printing Protocol) <> HTTP
IPP utilise HTTP pour le transport, mais ça s'arrête là :)
Ça n'a toujours rien à voir avec IP...
La charte accepte pourtant "les protocoles sans groupes dédié: NTP,
BIND, TCP, UDP, NetBios surIP... ainsi que les RFCs relatives et leur
implémentation". IPP me semble bien rentrer dans la définition.
Sinon tu proposerais quoi ? fr.comp.infosystemes ?
IPP utilise HTTP pour le transport, mais ça s'arrête là :)
Ça n'a toujours rien à voir avec IP...
La charte accepte pourtant "les protocoles sans groupes dédié: NTP, BIND, TCP, UDP, NetBios surIP... ainsi que les RFCs relatives et leur implémentation". IPP me semble bien rentrer dans la définition.
Sinon tu proposerais quoi ? fr.comp.infosystemes ?