ipptool(1)

ipptool1

Perform internet printing protocol requests

Usage

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]

Overview

ipptool sends IPP requests to the specified printer-uri and tests and/or displays the results. Each named testfile defines one or more requests, including the expected response status, attributes, and values. Output is either a plain text, formatted text, CSV, or XML report on the standard output, with a non-zero exit status indicating that one or more tests have failed. The testfile format is described in ipptoolfile(5).

Options

The following options are recognized by ipptool:

--help

Shows program help.

--ippserver filename

Specifies that the test results should be written to the named ippserver attributes file.

--stop-after-include-error

Tells ipptool to stop if an error occurs in an included file. Normally ipptool will continue with subsequent tests after the INCLUDE directive.

--version

Shows the version of ipptool being used.

-4

Specifies that ipptool must connect to the printer or server using IPv4.

-6

Specifies that ipptool must 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.

-E

Forces TLS encryption when connecting to the server using the HTTP "Upgrade" header.

-I

Specifies that ipptool will continue past errors.

-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). This option is incompatible with the -i (interval) and -n (repeat-count) options.

-S

Forces (dedicated) TLS encryption when connecting to the server.

-T seconds

Specifies a timeout for IPP requests in seconds.

-V version

Specifies the default IPP version to use: 1.0, 1.1, 2.0, 2.1, or 2.2. If not specified, version 1.1 is used.

-X

Specifies that XML (Apple plist) output is desired instead of the plain text report. This option is incompatible with the -i (interval) and -n (repeat-count) options.

-c

Specifies that CSV (comma-separated values) output is desired instead of the plain text output.

-d name=value

Defines the named variable.

-f filename

Defines the default request filename for tests.

-h

Validate HTTP response headers.

-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.

-j

Specifies that ipptool will produce JSON output.

-l

Specifies that plain text output is desired.

-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.

-q

Be quiet and produce no output.

-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.

Exit status

The ipptool program returns 0 if all tests were successful and 1 otherwise.

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

Examples

Get a list of completed jobs for "myprinter":

    ipptool ipp://localhost/printers/myprinter get-completed-jobs.test

Send email notifications to "[email protected]" when "myprinter" changes:

    ipptool -d recipient=mailto:[email protected] \
        ipp://localhost/printers/myprinter create-printer-subscription.test

Releases

8 releases since Debian 7 (Wheezy); the text changed 6 times.

  1. 7
  2. 8
  3. 9
  4. 10
  5. 11
  6. 12
  7. 13–Arch

--help since Debian 8 (Jessie); --ippserver since Debian 11 (Bullseye); --stop-after-include-error since Debian 8 (Jessie); --version since Debian 8 (Jessie); -h since Debian 10 (Buster); -j since Debian 12 (Bookworm); -q since Debian 9 (Stretch).

-T until Debian 8 (Jessie); -V until Debian 8 (Jessie); -d until Debian 8 (Jessie); -f until Debian 8 (Jessie); -i until Debian 8 (Jessie); -n until Debian 8 (Jessie).

Conforming to

The ipptool program is unique to CUPS and conforms to the Internet Printing Protocol up to version 2.2.

From cups 2:2.4.20-1 in Arch Linux 2026-11-01. Parsed by carta from the page's man source.