ipptool(1)
π ipptool β perform internet printing protocol requests π
okay bestie, sit down, hydrate, because we're about to talk about ipptool, the OpenPrinting icon that goes and talks to printers for you. she's giving main character energy in the CUPS universe and honestly? obsessed. π
β¨ SYNOPSIS β¨
ipptool [ --help ] [ --ippserver filename ] [ --stop-after-include-error
] [ --version ] [ -4 ] [ -6 ] [ -C ] [ -E ] [ -I ] [ -L ] [ -P
filename.plist ] [ -S ] [ -T seconds ] [ -V version ] [ -X ] [ -c ] [ -d
name=value ] [ -f filename ] [ -h ] [ -i seconds ] [ -j ] [ -n repeat-
count ] [ -q ] [ -t ] [ -v ] printer-uri testfile [ ... testfile ]
πΈ DESCRIPTION πΈ
So here's the vibe. ipptool sends IPP requests to the printer-uri you hand it, and then it tests and/or displays the results. That's the whole job, and she does it flawlessly. π
Each named testfile defines one or more requests β including the expected response status, attributes, and values. Like, a whole checklist of what should happen, and ipptool is the girl with the clipboard making sure it actually happened.
The output? You can get a plain text, formatted text, CSV, or XML report on the standard output. And the drama of it all: a non-zero exit status means one or more tests have failed. π
Oh, and if you want to know how to write a testfile? That's a whole other lore drop β the testfile format is described in ipptoolfile(5). iykyk. π
π OPTIONS π
The following options are recognized by ipptool:
--helpβ shows program help. that's it, that's the girl. π«Ά--ippserver filenameβ says the test results should be written to the named ippserver attributes file. so instead of just vibing on your screen, they go into a file. β¨--stop-after-include-errorβ tellsipptoolto stop if an error occurs in an included file. Normallyipptoolwill continue with subsequent tests after theINCLUDEdirective, but this one says "no bestie, we're halting right here." π--versionβ shows the version ofipptoolbeing used. know your queen's era. π-4β specifies thatipptoolmust connect to the printer or server using IPv4.-6β specifies thatipptoolmust connect to the printer or server using IPv6.-Cβ specifies that requests should be sent using the HTTP/1.1"Transfer-Encoding: chunked"header, which is required for conformance by all versions of IPP. The default is to use"Transfer-Encoding: chunked"for requests with attached files and"Content-Length:"for requests without attached files. so this is the "actually conform, bestie" flag. π-Eβ forces TLS encryption when connecting to the server using the HTTP"Upgrade"header. security slay. π-Iβ specifies thatipptoolwill continue past errors. she's forgiving like that. π-Lβ specifies that requests should be sent using the HTTP/1.0"Content-Length:"header, which is required for conformance by all versions of IPP. The default is to use"Transfer-Encoding: chunked"for requests with attached files and"Content-Length:"for requests without attached files.-P filename.plistβ specifies that the test results should be written to the named XML (Apple plist) file in addition to the regular test report (-t). β οΈ heads up: this option is incompatible with the-i(interval) and-n(repeat-count) options. pick a lane, girl. π-Sβ forces (dedicated) TLS encryption when connecting to the server. π₯-T secondsβ specifies a timeout for IPP requests in seconds. clock's ticking bestie. β°-V versionβ specifies the default IPP version to use:1.0,1.1,2.0,2.1, or2.2. If not specified, version1.1is used. yes,1.1is the default, she's a classic. π-Xβ specifies that XML (Apple plist) output is desired instead of the plain text report. β οΈ also incompatible with the-i(interval) and-n(repeat-count) options. not me trying to do bothβ¦ don't. π-cβ specifies that CSV (comma-separated values) output is desired instead of the plain text output. spreadsheet girlies rise. π-d name=valueβ defines the named variable. name equals value, simple as. β¨-f filenameβ defines the default request filename for tests. your fallback fave. π-hβ validate HTTP response headers. make sure those headers aren't lying to you. π-i secondsβ specifies that the (last) testfile should be repeated at the specified interval. β οΈ this option is incompatible with the-X(XML plist output) option. also note: it's the (last) testfile that repeats, okay? π¦-jβ specifies thatipptoolwill produce JSON output. for the devs who speak fluent JSON. πΈ-lβ specifies that plain text output is desired. (yes she's in the options list even though she's lowkey hiding from the synopsis β we still love her.) π₯°-n repeat-countβ specifies that the (last) testfile should be repeated the specified number of times. β οΈ this option is incompatible with the-X(XML plist output) option. loop it, queen. π-qβ be quiet and produce no output. silent but deadly (in the good way). π€«-tβ specifies that CUPS test report output is desired instead of the plain text output. π-vβ specifies that all request and response attributes should be output in CUPS test mode (-t). This is the default for XML output. so much detail, we love to see it. π
π EXIT STATUS π
The ipptool program returns 0 if all tests were successful and 1 otherwise. that's the whole mood ring β 0 = we ate, 1 = something's off bestie. π
π¦ FILES π¦
The following standard files are available:
color.jpg
create-printer-subscription.test
document-a4.pdf
document-a4.ps
document-letter.pdf
document-letter.ps
get-completed-jobs.test
get-jobs.test
get-notifications.test
get-printer-attributes.test
get-subscriptions.test
gray.jpg
ipp-1.1.test
ipp-2.0.test
ipp-2.1.test
ipp-2.2.test
ipp-everywhere.test
onepage-a4.pdf
onepage-a4.ps
onepage-letter.pdf
onepage-letter.ps
print-job.test
print-job-deflate.test
print-job-gzip.test
testfile.jpg
testfile.pcl
testfile.pdf
testfile.ps
testfile.txt
validate-job.test
π CONFORMING TO π
The ipptool program is unique to CUPS and conforms to the Internet Printing Protocol up to version 2.2. she's one of a kind and standards-compliant, the duality. β¨
π EXAMPLES π
Get a list of completed jobs for "myprinter":
ipptool ipp://localhost/printers/myprinter get-completed-jobs.test
Send email notifications to "user@example.com" when "myprinter" changes:
ipptool -d recipient=mailto:user@example.com \
ipp://localhost/printers/myprinter create-printer-subscription.test
see how easy that was?? iconic behaviour fr fr. π«Ά
π₯ SEE ALSO π₯
ipptoolfile(5), IANA IPP Registry (https://www.iana.org/assignments/ipp-registrations), PWG Internet Printing Protocol Workgroup (https://www.pwg.org/ipp) RFC 8011 (https://datatracker.ietf.org/doc/html/rfc8011),
π COPYRIGHT π
Copyright Β© 2020-2024 by OpenPrinting.
and that's the whole page bestie!! this gorgeousness is from the CUPS manual, dated 2021-10-20 β go forth and test those printers, you've got this. mwah. πβ¨π
π¦ where this page comes from
- alpine 3.22: cups-doc 2.4.18-r0 Β· Apache-2.0
- alpine 3.23: cups-doc 2.4.18-r0 Β· Apache-2.0
- alpine 3.24: cups-doc 2.4.19-r1 Β· Apache-2.0
- centos-stream 10: cups-ipptool 1:2.4.10-18.el10 Β· Apache-2.0 WITH LLVM-exception AND BSD-3-Clause AND Zlib AND BSD-2-Clause
- debian trixie: cups-ipp-utils 2.4.10-3+deb13u1 Β· Apache-2.0-with-GPL2-LGPL2-Exception
- debian trixie: cups-ipp-utils 2.4.10-3+deb13u2 Β· Apache-2.0-with-GPL2-LGPL2-Exception
- fedora 43: cups-ipptool 1:2.4.14-2.fc43 Β· Apache-2.0 WITH LLVM-exception AND BSD-3-Clause AND Zlib AND BSD-2-Clause
- fedora 43: cups-ipptool 1:2.4.19-3.fc43 Β· Apache-2.0 WITH LLVM-exception AND BSD-3-Clause AND Zlib AND BSD-2-Clause
- fedora 44: cups-ipptool 1:2.4.16-7.fc44 Β· Apache-2.0 WITH LLVM-exception AND BSD-3-Clause AND Zlib AND BSD-2-Clause
- fedora 44: cups-ipptool 1:2.4.19-3.fc44 Β· Apache-2.0 WITH LLVM-exception AND BSD-3-Clause AND Zlib AND BSD-2-Clause
- nixpkgs unstable: cups 2.4.19
- opensuse-leap 16.0: cups-client 2.4.19-160000.2.1 Β· Apache-2.0
- opensuse-leap 16.0: cups-client 2.4.19-160000.2.1 Β· Apache-2.0
- opensuse-leap 16.0: cups-client 2.4.19-160000.2.1 Β· Apache-2.0
- opensuse-leap 16.0: cups-client 2.4.19-160000.2.1 Β· Apache-2.0
- ubuntu questing: cups-ipp-utils 2.4.12-0ubuntu3
- ubuntu questing: cups-ipp-utils 2.4.12-0ubuntu3.10
- ubuntu resolute: cups-ipp-utils 2.4.16-1ubuntu1 Β· Apache-2.0-with-GPL2-LGPL2-Exception
- ubuntu resolute: cups-ipp-utils 2.4.16-1ubuntu1.3 Β· Apache-2.0-with-GPL2-LGPL2-Exception
- ubuntu stonking: cups-ipp-utils 2.4.16-1ubuntu3 Β· Apache-2.0-with-GPL2-LGPL2-Exception
- Copyright Β© 2020-2024 by OpenPrinting
- Copyright Β© 2010-2019 by Apple Inc
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms