1ippfind(1)                       OpenPrinting                       ippfind(1)
2
3
4

NAME

6       ippfind - find internet printing protocol printers
7

SYNOPSIS

9       ippfind [ options ] regtype[,subtype][.domain.] ... [ expression
10        ... ]
11       ippfind [ options ] name[.regtype[.domain.]] ... [ expression
12        ... ]
13       ippfind --help
14       ippfind --version
15

DESCRIPTION

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  ex‐
78            pression.
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

OPTIONS

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

EXIT STATUS

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 ex‐
210       pression was specified, and 4 if it ran out of memory.
211

ENVIRONMENT

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

EXAMPLES

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

SEE ALSO

254       ipptool(1)
255
257       Copyright © 2021-2023 by OpenPrinting.
258
259
260
2612021-02-28                         ippsample                        ippfind(1)
Impressum