.\"
.\" ippfind man page.
.\"
.\" Copyright © 2013-2019 by Apple Inc.
.\"
.\" Licensed under Apache License v2.0.  See the file "LICENSE" for more
.\" information.
.\"
.TH ippfind 1 "ippsample" "26 April 2019" "Apple Inc."
.SH NAME
ippfind \- find internet printing protocol printers
.SH SYNOPSIS
.B ippfind
[
.I options
] \fIregtype\fR[\fB,\fIsubtype\fR][\fB.\fIdomain\fB.\fR] ... [
.I expression
 ... ]
.br
.B ippfind
[
.I options
] \fIname\fR[\fB.\fIregtype\fR[\fB.\fIdomain\fB.\fR]] ... [
.I expression
 ... ]
.br
.B ippfind
.B \-\-help
.br
.B ippfind
.B \-\-version
.SH DESCRIPTION
\fBippfind\fR finds services registered with a DNS server or available through local devices.
Its primary purpose is to find IPP printers and show their URIs, show their current status, or run commands.
.SS REGISTRATION TYPES
\fBippfind\fR supports the following registration types:
.TP 5
_http._tcp
HyperText Transport Protocol (HTTP, RFC 2616)
.TP 5
_https._tcp
Secure HyperText Transport Protocol (HTTPS, RFC 2818)
.TP 5
_ipp._tcp
Internet Printing Protocol (IPP, RFC 2911)
.TP 5
_ipps._tcp
Secure Internet Printing Protocol (IPPS, draft)
.TP 5
_printer._tcp
Line Printer Daemon (LPD, RFC 1179)
.SS EXPRESSIONS
\fBippfind\fR supports expressions much like the
.BR find (1)
utility.
However, unlike
.BR find (1),
\fBippfind\fR uses POSIX regular expressions instead of shell filename matching patterns.
If \fI\-\-exec\fR, \fI\-l\fR, \fI\-\-ls\fR, \fI\-p\fR, \fI\-\-print\fR, \fI\-\-print\-name\fR, \fI\-q\fR, \fI\-\-quiet\fR, \fI\-s\fR, or \fI\-x\fR is not specified, \fBippfind\fR adds \fI\-\-print\fR to print the service URI of anything it finds.
The following expressions are supported:
.TP 5
\fB\-d \fIregex\fR
.TP 5
\fB\-\-domain \fIregex\fR
True if the domain matches the given regular expression.
.TP 5
.B \-\-false
Always false.
.TP 5
\fB\-h \fIregex\fR
.TP 5
\fB\-\-host \fIregex\fR
True is the hostname matches the given regular expression.
.TP 5
.B \-l
.TP 5
.B \-\-ls
Lists attributes returned by Get-Printer-Attributes for IPP printers and traditional \fIfind\fR "-ls" output for HTTP URLs.
The result is true if the URI is accessible, false otherwise.
.TP 5
.B \-\-local
True if the service is local to this computer.
.TP 5
\fB\-N \fIname\fR
.TP 5
\fB\-\-literal\-name \fIname\fR
True if the service instance name matches the given name.
.TP 5
\fB\-n \fIregex\fR
.TP 5
\fB\-\-name \fIregex\fR
True if the service instance name matches the given regular expression.
.TP 5
\fB\-\-path \fIregex\fR
True if the URI resource path matches the given regular expression.
.TP 5
\fB\-P \fInumber\fR[\fB-\fInumber\fR]
.TP 5
\fB\-\-port \fInumber\fR[\fB-\fInumber\fR]
True if the port matches the given number or range.
.TP 5
.B \-p
.TP 5
.B \-\-print
Prints the URI if the result of previous expressions is true.
The result is always true.
.TP 5
.B \-q
.TP 5
.B \-\-quiet
Quiet mode - just returns the exit codes below.
.TP 5
.B \-r
.TP 5
.B \-\-remote
True if the service is not local to this computer.
.TP 5
.B \-s
.TP 5
.B \-\-print\-name
Prints the service instance name if the result of previous expressions is true.
The result is always true.
.TP 5
.B \-\-true
Always true.
.TP 5
\fB\-t \fIkey\fR
.TP 5
\fB\-\-txt \fIkey\fR
True if the TXT record contains the named key.
.TP 5
\fB\-\-txt\-\fIkey regex\fR
True if the TXT record contains the named key and matches the given regular expression.
.TP 5
\fB\-u \fIregex\fR
.TP 5
\fB\-\-uri \fIregex\fR
True if the URI matches the given regular expression.
.TP 5
\fB\-x \fIutility \fR[ \fIargument \fR... ] \fB;\fR
.TP 5
\fB\-\-exec \fIutility \fR[ \fIargument \fR... ] \fB;\fR
Executes the specified program if the current result is true.
"{foo}" arguments are replaced with the corresponding value - see SUBSTITUTIONS below.
.PP
Expressions may also contain modifiers:
.TP 5
\fB( \fIexpression \fB)\fR
Group the result of expressions.
.TP 5
\fB! \fIexpression\fR
.TP 5
\fB\-\-not \fIexpression\fR
Unary NOT of the expression.
.TP 5
\fIexpression expression\fR
.TP 5
\fIexpression \fB\-\-and \fIexpression\fR
Logical AND of expressions.
.TP 5
\fIexpression \fB\-\-or \fIexpression\fR
Logical OR of expressions.
.SS SUBSTITUTIONS
The substitutions for "{foo}" in \fI\-e\fR and \fI\-\-exec\fR are:
.TP 5
.B {service_domain}
Domain name, e.g., "example.com.", "local.", etc.
.TP 5
.B {service_hostname}
Fully-qualified domain name, e.g., "printer.example.com.", "printer.local.", etc.
.TP 5
.B {service_name}
Service instance name, e.g., "My Fine Printer".
.TP 5
.B {service_port}
Port number for server, typically 631 for IPP and 80 for HTTP.
.TP 5
.B {service_regtype}
DNS-SD registration type, e.g., "_ipp._tcp", "_http._tcp", etc.
.TP 5
.B {service_scheme}
URI scheme for DNS-SD registration type, e.g., "ipp", "http", etc.
.TP 5
.B {}
.TP 5
.B {service_uri}
URI for service, e.g., "ipp://printer.local./ipp/print", "http://printer.local./", etc.
.TP 5
\fB{txt_\fIkey\fB}\fR
Value of TXT record \fIkey\fR (lowercase).
.SH OPTIONS
\fBippfind\fR supports the following options:
.TP 5
.B \-\-help
Show program help.
.TP 5
.B \-\-version
Show program version.
.TP 5
.B \-4
Use IPv4 when listing.
.TP 5
.B \-6
Use IPv6 when listing.
.TP 5
\fB\-T \fIseconds\fR
Specify find timeout in seconds.
If 1 or less, \fBippfind\fR stops as soon as it thinks it has found everything.
The default timeout is 1 second.
.TP 5
\fB\-V \fIversion\fR
Specifies the IPP version when listing.
Supported values are "1.1", "2.0", "2.1", and "2.2".
.SH EXIT STATUS
\fBippfind\fR returns 0 if the result for all processed expressions is true, 1 if the result of any processed expression is false, 2 if browsing or any query or resolution failed, 3 if an undefined option or invalid expression was specified, and 4 if it ran out of memory.
.SH ENVIRONMENT
When executing a program, \fBippfind\fR sets the following environment variables for the matching service registration:
.TP 5
.B IPPFIND_SERVICE_DOMAIN
Domain name, e.g., "example.com.", "local.", etc.
.TP 5
.B IPPFIND_SERVICE_HOSTNAME
Fully-qualified domain name, e.g., "printer.example.com.", "printer.local.", etc.
.TP 5
.B IPPFIND_SERVICE_NAME
Service instance name, e.g., "My Fine Printer".
.TP 5
.B IPPFIND_SERVICE_PORT
Port number for server, typically 631 for IPP and 80 for HTTP.
.TP 5
.B IPPFIND_SERVICE_REGTYPE
DNS-SD registration type, e.g., "_ipp._tcp", "_http._tcp", etc.
.TP 5
.B IPPFIND_SERVICE_SCHEME
URI scheme for DNS-SD registration type, e.g., "ipp", "http", etc.
.TP 5
.B IPPFIND_SERVICE_URI
URI for service, e.g., "ipp://printer.local./ipp/print", "http://printer.local./", etc.
.TP 5
.B IPPFIND_TXT_\fIKEY\fR
Values of TXT record \fIKEY\fR (uppercase).
.SH EXAMPLES
To show the status of all registered IPP printers on your network, run:
.nf

    ippfind \-\-ls

.fi
Similarly, to send a PostScript test page to every PostScript printer, run:
.nf

    ippfind \-\-txt\-pdl application/postscript \-\-exec ipptool
      \-f onepage\-letter.ps '{}' print\-job.test \\;
.fi
.SH SEE ALSO
.BR ipptool (1)
.SH COPYRIGHT
Copyright \[co] 2013-2019 by Apple Inc.
