1ippfind(1) Apple Inc. ippfind(1)
2
3
4
6 ippfind - find internet printing protocol printers
7
9 ippfind [ options ] regtype[,subtype][.domain.] ... [ expression
10 ... ]
11 ippfind [ options ] name[.regtype[.domain.]] ... [ expression
12 ... ]
13 ippfind --help
14 ippfind --version
15
17 ippfind finds services registered with a DNS server or available
18 through local devices. Its primary purpose is to find IPP printers and
19 show their URIs, show their current status, or run commands.
20
21 REGISTRATION TYPES
22 ippfind supports the following registration types:
23
24 _http._tcp
25 HyperText Transport Protocol (HTTP, RFC 2616)
26
27 _https._tcp
28 Secure HyperText Transport Protocol (HTTPS, RFC 2818)
29
30 _ipp._tcp
31 Internet Printing Protocol (IPP, RFC 2911)
32
33 _ipps._tcp
34 Secure Internet Printing Protocol (IPPS, draft)
35
36 _printer._tcp
37 Line Printer Daemon (LPD, RFC 1179)
38
39 EXPRESSIONS
40 ippfind supports expressions much like the find(1) utility. However,
41 unlike find(1), ippfind uses POSIX regular expressions instead of shell
42 filename matching patterns. If --exec, -l, --ls, -p, --print,
43 --print-name, -q, --quiet, -s, or -x is not specified, ippfind adds
44 --print to print the service URI of anything it finds. The following
45 expressions are supported:
46
47 -d regex
48
49 --domain regex
50 True if the domain matches the given regular expression.
51
52 --false
53 Always false.
54
55 -h regex
56
57 --host regex
58 True is the hostname matches the given regular expression.
59
60 -l
61
62 --ls Lists attributes returned by Get-Printer-Attributes for IPP print‐
63 ers and traditional find "-ls" output for HTTP URLs. The result
64 is true if the URI is accessible, false otherwise.
65
66 --local
67 True if the service is local to this computer.
68
69 -N name
70
71 --literal-name name
72 True if the service instance name matches the given name.
73
74 -n regex
75
76 --name regex
77 True if the service instance name matches the given regular
78 expression.
79
80 --path regex
81 True if the URI resource path matches the given regular expres‐
82 sion.
83
84 -P number[-number]
85
86 --port number[-number]
87 True if the port matches the given number or range.
88
89 -p
90
91 --print
92 Prints the URI if the result of previous expressions is true. The
93 result is always true.
94
95 -q
96
97 --quiet
98 Quiet mode - just returns the exit codes below.
99
100 -r
101
102 --remote
103 True if the service is not local to this computer.
104
105 -s
106
107 --print-name
108 Prints the service instance name if the result of previous expres‐
109 sions is true. The result is always true.
110
111 --true
112 Always true.
113
114 -t key
115
116 --txt key
117 True if the TXT record contains the named key.
118
119 --txt-key regex
120 True if the TXT record contains the named key and matches the
121 given regular expression.
122
123 -u regex
124
125 --uri regex
126 True if the URI matches the given regular expression.
127
128 -x utility [ argument ... ] ;
129
130 --exec utility [ argument ... ] ;
131 Executes the specified program if the current result is true.
132 "{foo}" arguments are replaced with the corresponding value - see
133 SUBSTITUTIONS below.
134
135 Expressions may also contain modifiers:
136
137 ( expression )
138 Group the result of expressions.
139
140 ! expression
141
142 --not expression
143 Unary NOT of the expression.
144
145 expression expression
146
147 expression --and expression
148 Logical AND of expressions.
149
150 expression --or expression
151 Logical OR of expressions.
152
153 SUBSTITUTIONS
154 The substitutions for "{foo}" in -e and --exec are:
155
156 {service_domain}
157 Domain name, e.g., "example.com.", "local.", etc.
158
159 {service_hostname}
160 Fully-qualified domain name, e.g., "printer.example.com.",
161 "printer.local.", etc.
162
163 {service_name}
164 Service instance name, e.g., "My Fine Printer".
165
166 {service_port}
167 Port number for server, typically 631 for IPP and 80 for HTTP.
168
169 {service_regtype}
170 DNS-SD registration type, e.g., "_ipp._tcp", "_http._tcp", etc.
171
172 {service_scheme}
173 URI scheme for DNS-SD registration type, e.g., "ipp", "http", etc.
174
175 {}
176
177 {service_uri}
178 URI for service, e.g., "ipp://printer.local./ipp/print",
179 "http://printer.local./", etc.
180
181 {txt_key}
182 Value of TXT record key (lowercase).
183
185 ippfind supports the following options:
186
187 --help
188 Show program help.
189
190 --version
191 Show program version.
192
193 -4 Use IPv4 when listing.
194
195 -6 Use IPv6 when listing.
196
197 -T seconds
198 Specify find timeout in seconds. If 1 or less, ippfind stops as
199 soon as it thinks it has found everything. The default timeout is
200 1 second.
201
202 -V version
203 Specifies the IPP version when listing. Supported values are
204 "1.1", "2.0", "2.1", and "2.2".
205
207 ippfind returns 0 if the result for all processed expressions is true,
208 1 if the result of any processed expression is false, 2 if browsing or
209 any query or resolution failed, 3 if an undefined option or invalid
210 expression was specified, and 4 if it ran out of memory.
211
213 When executing a program, ippfind sets the following environment vari‐
214 ables for the matching service registration:
215
216 IPPFIND_SERVICE_DOMAIN
217 Domain name, e.g., "example.com.", "local.", etc.
218
219 IPPFIND_SERVICE_HOSTNAME
220 Fully-qualified domain name, e.g., "printer.example.com.",
221 "printer.local.", etc.
222
223 IPPFIND_SERVICE_NAME
224 Service instance name, e.g., "My Fine Printer".
225
226 IPPFIND_SERVICE_PORT
227 Port number for server, typically 631 for IPP and 80 for HTTP.
228
229 IPPFIND_SERVICE_REGTYPE
230 DNS-SD registration type, e.g., "_ipp._tcp", "_http._tcp", etc.
231
232 IPPFIND_SERVICE_SCHEME
233 URI scheme for DNS-SD registration type, e.g., "ipp", "http", etc.
234
235 IPPFIND_SERVICE_URI
236 URI for service, e.g., "ipp://printer.local./ipp/print",
237 "http://printer.local./", etc.
238
239 IPPFIND_TXT_KEY
240 Values of TXT record KEY (uppercase).
241
243 To show the status of all registered IPP printers on your network, run:
244
245 ippfind --ls
246
247 Similarly, to send a PostScript test page to every PostScript printer,
248 run:
249
250 ippfind --txt-pdl application/postscript --exec ipptool
251 -f onepage-letter.ps '{}' print-job.test \;
252
254 ipptool(1)
255
257 Copyright © 2013-2019 by Apple Inc.
258
259
260
26126 April 2019 ippsample ippfind(1)