1 | # Magic data for mod_mime_magic Apache module (originally for file(1) command) |
---|
2 | # The module is described in /manual/mod/mod_mime_magic.html |
---|
3 | # |
---|
4 | # The format is 4-5 columns: |
---|
5 | # Column #1: byte number to begin checking from, ">" indicates continuation |
---|
6 | # Column #2: type of data to match |
---|
7 | # Column #3: contents of data to match |
---|
8 | # Column #4: MIME type of result |
---|
9 | # Column #5: MIME encoding of result (optional) |
---|
10 | |
---|
11 | #------------------------------------------------------------------------------ |
---|
12 | # Localstuff: file(1) magic for locally observed files |
---|
13 | # Add any locally observed files here. |
---|
14 | |
---|
15 | #------------------------------------------------------------------------------ |
---|
16 | # end local stuff |
---|
17 | #------------------------------------------------------------------------------ |
---|
18 | |
---|
19 | #------------------------------------------------------------------------------ |
---|
20 | # Java |
---|
21 | |
---|
22 | 0 short 0xcafe |
---|
23 | >2 short 0xbabe application/java |
---|
24 | |
---|
25 | #------------------------------------------------------------------------------ |
---|
26 | # audio: file(1) magic for sound formats |
---|
27 | # |
---|
28 | # from Jan Nicolai Langfeldt <janl@ifi.uio.no>, |
---|
29 | # |
---|
30 | |
---|
31 | # Sun/NeXT audio data |
---|
32 | 0 string .snd |
---|
33 | >12 belong 1 audio/basic |
---|
34 | >12 belong 2 audio/basic |
---|
35 | >12 belong 3 audio/basic |
---|
36 | >12 belong 4 audio/basic |
---|
37 | >12 belong 5 audio/basic |
---|
38 | >12 belong 6 audio/basic |
---|
39 | >12 belong 7 audio/basic |
---|
40 | |
---|
41 | >12 belong 23 audio/x-adpcm |
---|
42 | |
---|
43 | # DEC systems (e.g. DECstation 5000) use a variant of the Sun/NeXT format |
---|
44 | # that uses little-endian encoding and has a different magic number |
---|
45 | # (0x0064732E in little-endian encoding). |
---|
46 | 0 lelong 0x0064732E |
---|
47 | >12 lelong 1 audio/x-dec-basic |
---|
48 | >12 lelong 2 audio/x-dec-basic |
---|
49 | >12 lelong 3 audio/x-dec-basic |
---|
50 | >12 lelong 4 audio/x-dec-basic |
---|
51 | >12 lelong 5 audio/x-dec-basic |
---|
52 | >12 lelong 6 audio/x-dec-basic |
---|
53 | >12 lelong 7 audio/x-dec-basic |
---|
54 | # compressed (G.721 ADPCM) |
---|
55 | >12 lelong 23 audio/x-dec-adpcm |
---|
56 | |
---|
57 | # Bytes 0-3 of AIFF, AIFF-C, & 8SVX audio files are "FORM" |
---|
58 | # AIFF audio data |
---|
59 | 8 string AIFF audio/x-aiff |
---|
60 | # AIFF-C audio data |
---|
61 | 8 string AIFC audio/x-aiff |
---|
62 | # IFF/8SVX audio data |
---|
63 | 8 string 8SVX audio/x-aiff |
---|
64 | |
---|
65 | # Creative Labs AUDIO stuff |
---|
66 | # Standard MIDI data |
---|
67 | 0 string MThd audio/unknown |
---|
68 | #>9 byte >0 (format %d) |
---|
69 | #>11 byte >1 using %d channels |
---|
70 | # Creative Music (CMF) data |
---|
71 | 0 string CTMF audio/unknown |
---|
72 | # SoundBlaster instrument data |
---|
73 | 0 string SBI audio/unknown |
---|
74 | # Creative Labs voice data |
---|
75 | 0 string Creative\ Voice\ File audio/unknown |
---|
76 | ## is this next line right? it came this way... |
---|
77 | #>19 byte 0x1A |
---|
78 | #>23 byte >0 - version %d |
---|
79 | #>22 byte >0 \b.%d |
---|
80 | |
---|
81 | # [GRR 950115: is this also Creative Labs? Guessing that first line |
---|
82 | # should be string instead of unknown-endian long...] |
---|
83 | #0 long 0x4e54524b MultiTrack sound data |
---|
84 | #0 string NTRK MultiTrack sound data |
---|
85 | #>4 long x - version %ld |
---|
86 | |
---|
87 | # Microsoft WAVE format (*.wav) |
---|
88 | # [GRR 950115: probably all of the shorts and longs should be leshort/lelong] |
---|
89 | # Microsoft RIFF |
---|
90 | 0 string RIFF audio/unknown |
---|
91 | # - WAVE format |
---|
92 | >8 string WAVE audio/x-wav |
---|
93 | # MPEG audio. |
---|
94 | 0 beshort&0xfff0 0xfff0 audio/mpeg |
---|
95 | # C64 SID Music files, from Linus Walleij <triad@df.lth.se> |
---|
96 | 0 string PSID audio/prs.sid |
---|
97 | |
---|
98 | #------------------------------------------------------------------------------ |
---|
99 | # c-lang: file(1) magic for C programs or various scripts |
---|
100 | # |
---|
101 | |
---|
102 | # XPM icons (Greg Roelofs, newt@uchicago.edu) |
---|
103 | # ideally should go into "images", but entries below would tag XPM as C source |
---|
104 | 0 string /*\ XPM image/x-xbm 7bit |
---|
105 | |
---|
106 | # this first will upset you if you're a PL/1 shop... (are there any left?) |
---|
107 | # in which case rm it; ascmagic will catch real C programs |
---|
108 | # C or REXX program text |
---|
109 | 0 string /* text/plain |
---|
110 | # C++ program text |
---|
111 | 0 string // text/plain |
---|
112 | |
---|
113 | #------------------------------------------------------------------------------ |
---|
114 | # compress: file(1) magic for pure-compression formats (no archives) |
---|
115 | # |
---|
116 | # compress, gzip, pack, compact, huf, squeeze, crunch, freeze, yabba, whap, etc. |
---|
117 | # |
---|
118 | # Formats for various forms of compressed data |
---|
119 | # Formats for "compress" proper have been moved into "compress.c", |
---|
120 | # because it tries to uncompress it to figure out what's inside. |
---|
121 | |
---|
122 | # standard unix compress |
---|
123 | 0 string \037\235 application/octet-stream x-compress |
---|
124 | |
---|
125 | # gzip (GNU zip, not to be confused with [Info-ZIP/PKWARE] zip archiver) |
---|
126 | 0 string \037\213 application/octet-stream x-gzip |
---|
127 | |
---|
128 | # According to gzip.h, this is the correct byte order for packed data. |
---|
129 | 0 string \037\036 application/octet-stream |
---|
130 | # |
---|
131 | # This magic number is byte-order-independent. |
---|
132 | # |
---|
133 | 0 short 017437 application/octet-stream |
---|
134 | |
---|
135 | # XXX - why *two* entries for "compacted data", one of which is |
---|
136 | # byte-order independent, and one of which is byte-order dependent? |
---|
137 | # |
---|
138 | # compacted data |
---|
139 | 0 short 0x1fff application/octet-stream |
---|
140 | 0 string \377\037 application/octet-stream |
---|
141 | # huf output |
---|
142 | 0 short 0145405 application/octet-stream |
---|
143 | |
---|
144 | # Squeeze and Crunch... |
---|
145 | # These numbers were gleaned from the Unix versions of the programs to |
---|
146 | # handle these formats. Note that I can only uncrunch, not crunch, and |
---|
147 | # I didn't have a crunched file handy, so the crunch number is untested. |
---|
148 | # Keith Waclena <keith@cerberus.uchicago.edu> |
---|
149 | #0 leshort 0x76FF squeezed data (CP/M, DOS) |
---|
150 | #0 leshort 0x76FE crunched data (CP/M, DOS) |
---|
151 | |
---|
152 | # Freeze |
---|
153 | #0 string \037\237 Frozen file 2.1 |
---|
154 | #0 string \037\236 Frozen file 1.0 (or gzip 0.5) |
---|
155 | |
---|
156 | # lzh? |
---|
157 | #0 string \037\240 LZH compressed data |
---|
158 | |
---|
159 | #------------------------------------------------------------------------------ |
---|
160 | # frame: file(1) magic for FrameMaker files |
---|
161 | # |
---|
162 | # This stuff came on a FrameMaker demo tape, most of which is |
---|
163 | # copyright, but this file is "published" as witness the following: |
---|
164 | # |
---|
165 | 0 string \<MakerFile application/x-frame |
---|
166 | 0 string \<MIFFile application/x-frame |
---|
167 | 0 string \<MakerDictionary application/x-frame |
---|
168 | 0 string \<MakerScreenFon application/x-frame |
---|
169 | 0 string \<MML application/x-frame |
---|
170 | 0 string \<Book application/x-frame |
---|
171 | 0 string \<Maker application/x-frame |
---|
172 | |
---|
173 | #------------------------------------------------------------------------------ |
---|
174 | # html: file(1) magic for HTML (HyperText Markup Language) docs |
---|
175 | # |
---|
176 | # from Daniel Quinlan <quinlan@yggdrasil.com> |
---|
177 | # and Anna Shergold <anna@inext.co.uk> |
---|
178 | # |
---|
179 | 0 string \<!DOCTYPE\ HTML text/html |
---|
180 | 0 string \<!doctype\ html text/html |
---|
181 | 0 string \<HEAD text/html |
---|
182 | 0 string \<head text/html |
---|
183 | 0 string \<TITLE text/html |
---|
184 | 0 string \<title text/html |
---|
185 | 0 string \<html text/html |
---|
186 | 0 string \<HTML text/html |
---|
187 | 0 string \<!-- text/html |
---|
188 | 0 string \<h1 text/html |
---|
189 | 0 string \<H1 text/html |
---|
190 | |
---|
191 | # XML eXtensible Markup Language, from Linus Walleij <triad@df.lth.se> |
---|
192 | 0 string \<?xml text/xml |
---|
193 | |
---|
194 | #------------------------------------------------------------------------------ |
---|
195 | # images: file(1) magic for image formats (see also "c-lang" for XPM bitmaps) |
---|
196 | # |
---|
197 | # originally from jef@helios.ee.lbl.gov (Jef Poskanzer), |
---|
198 | # additions by janl@ifi.uio.no as well as others. Jan also suggested |
---|
199 | # merging several one- and two-line files into here. |
---|
200 | # |
---|
201 | # XXX - byte order for GIF and TIFF fields? |
---|
202 | # [GRR: TIFF allows both byte orders; GIF is probably little-endian] |
---|
203 | # |
---|
204 | |
---|
205 | # [GRR: what the hell is this doing in here?] |
---|
206 | #0 string xbtoa btoa'd file |
---|
207 | |
---|
208 | # PBMPLUS |
---|
209 | # PBM file |
---|
210 | 0 string P1 image/x-portable-bitmap 7bit |
---|
211 | # PGM file |
---|
212 | 0 string P2 image/x-portable-greymap 7bit |
---|
213 | # PPM file |
---|
214 | 0 string P3 image/x-portable-pixmap 7bit |
---|
215 | # PBM "rawbits" file |
---|
216 | 0 string P4 image/x-portable-bitmap |
---|
217 | # PGM "rawbits" file |
---|
218 | 0 string P5 image/x-portable-greymap |
---|
219 | # PPM "rawbits" file |
---|
220 | 0 string P6 image/x-portable-pixmap |
---|
221 | |
---|
222 | # NIFF (Navy Interchange File Format, a modification of TIFF) |
---|
223 | # [GRR: this *must* go before TIFF] |
---|
224 | 0 string IIN1 image/x-niff |
---|
225 | |
---|
226 | # TIFF and friends |
---|
227 | # TIFF file, big-endian |
---|
228 | 0 string MM image/tiff |
---|
229 | # TIFF file, little-endian |
---|
230 | 0 string II image/tiff |
---|
231 | |
---|
232 | # possible GIF replacements; none yet released! |
---|
233 | # (Greg Roelofs, newt@uchicago.edu) |
---|
234 | # |
---|
235 | # GRR 950115: this was mine ("Zip GIF"): |
---|
236 | # ZIF image (GIF+deflate alpha) |
---|
237 | 0 string GIF94z image/unknown |
---|
238 | # |
---|
239 | # GRR 950115: this is Jeremy Wohl's Free Graphics Format (better): |
---|
240 | # FGF image (GIF+deflate beta) |
---|
241 | 0 string FGF95a image/unknown |
---|
242 | # |
---|
243 | # GRR 950115: this is Thomas Boutell's Portable Bitmap Format proposal |
---|
244 | # (best; not yet implemented): |
---|
245 | # PBF image (deflate compression) |
---|
246 | 0 string PBF image/unknown |
---|
247 | |
---|
248 | # GIF |
---|
249 | 0 string GIF image/gif |
---|
250 | |
---|
251 | # JPEG images |
---|
252 | 0 beshort 0xffd8 image/jpeg |
---|
253 | |
---|
254 | # PC bitmaps (OS/2, Windoze BMP files) (Greg Roelofs, newt@uchicago.edu) |
---|
255 | 0 string BM image/bmp |
---|
256 | #>14 byte 12 (OS/2 1.x format) |
---|
257 | #>14 byte 64 (OS/2 2.x format) |
---|
258 | #>14 byte 40 (Windows 3.x format) |
---|
259 | #0 string IC icon |
---|
260 | #0 string PI pointer |
---|
261 | #0 string CI color icon |
---|
262 | #0 string CP color pointer |
---|
263 | #0 string BA bitmap array |
---|
264 | |
---|
265 | |
---|
266 | #------------------------------------------------------------------------------ |
---|
267 | # lisp: file(1) magic for lisp programs |
---|
268 | # |
---|
269 | # various lisp types, from Daniel Quinlan (quinlan@yggdrasil.com) |
---|
270 | 0 string ;; text/plain 8bit |
---|
271 | # Emacs 18 - this is always correct, but not very magical. |
---|
272 | 0 string \012( application/x-elc |
---|
273 | # Emacs 19 |
---|
274 | 0 string ;ELC\023\000\000\000 application/x-elc |
---|
275 | |
---|
276 | #------------------------------------------------------------------------------ |
---|
277 | # mail.news: file(1) magic for mail and news |
---|
278 | # |
---|
279 | # There are tests to ascmagic.c to cope with mail and news. |
---|
280 | 0 string Relay-Version: message/rfc822 7bit |
---|
281 | 0 string #!\ rnews message/rfc822 7bit |
---|
282 | 0 string N#!\ rnews message/rfc822 7bit |
---|
283 | 0 string Forward\ to message/rfc822 7bit |
---|
284 | 0 string Pipe\ to message/rfc822 7bit |
---|
285 | 0 string Return-Path: message/rfc822 7bit |
---|
286 | 0 string Path: message/news 8bit |
---|
287 | 0 string Xref: message/news 8bit |
---|
288 | 0 string From: message/rfc822 7bit |
---|
289 | 0 string Article message/news 8bit |
---|
290 | #------------------------------------------------------------------------------ |
---|
291 | # msword: file(1) magic for MS Word files |
---|
292 | # |
---|
293 | # Contributor claims: |
---|
294 | # Reversed-engineered MS Word magic numbers |
---|
295 | # |
---|
296 | |
---|
297 | 0 string \376\067\0\043 application/msword |
---|
298 | 0 string \333\245-\0\0\0 application/msword |
---|
299 | |
---|
300 | # disable this one because it applies also to other |
---|
301 | # Office/OLE documents for which msword is not correct. See PR#2608. |
---|
302 | #0 string \320\317\021\340\241\261 application/msword |
---|
303 | |
---|
304 | |
---|
305 | |
---|
306 | #------------------------------------------------------------------------------ |
---|
307 | # printer: file(1) magic for printer-formatted files |
---|
308 | # |
---|
309 | |
---|
310 | # PostScript |
---|
311 | 0 string %! application/postscript |
---|
312 | 0 string \004%! application/postscript |
---|
313 | |
---|
314 | # Acrobat |
---|
315 | # (due to clamen@cs.cmu.edu) |
---|
316 | 0 string %PDF- application/pdf |
---|
317 | |
---|
318 | #------------------------------------------------------------------------------ |
---|
319 | # sc: file(1) magic for "sc" spreadsheet |
---|
320 | # |
---|
321 | 38 string Spreadsheet application/x-sc |
---|
322 | |
---|
323 | #------------------------------------------------------------------------------ |
---|
324 | # tex: file(1) magic for TeX files |
---|
325 | # |
---|
326 | # XXX - needs byte-endian stuff (big-endian and little-endian DVI?) |
---|
327 | # |
---|
328 | # From <conklin@talisman.kaleida.com> |
---|
329 | |
---|
330 | # Although we may know the offset of certain text fields in TeX DVI |
---|
331 | # and font files, we can't use them reliably because they are not |
---|
332 | # zero terminated. [but we do anyway, christos] |
---|
333 | 0 string \367\002 application/x-dvi |
---|
334 | #0 string \367\203 TeX generic font data |
---|
335 | #0 string \367\131 TeX packed font data |
---|
336 | #0 string \367\312 TeX virtual font data |
---|
337 | #0 string This\ is\ TeX, TeX transcript text |
---|
338 | #0 string This\ is\ METAFONT, METAFONT transcript text |
---|
339 | |
---|
340 | # There is no way to detect TeX Font Metric (*.tfm) files without |
---|
341 | # breaking them apart and reading the data. The following patterns |
---|
342 | # match most *.tfm files generated by METAFONT or afm2tfm. |
---|
343 | #2 string \000\021 TeX font metric data |
---|
344 | #2 string \000\022 TeX font metric data |
---|
345 | #>34 string >\0 (%s) |
---|
346 | |
---|
347 | # Texinfo and GNU Info, from Daniel Quinlan (quinlan@yggdrasil.com) |
---|
348 | #0 string \\input\ texinfo Texinfo source text |
---|
349 | #0 string This\ is\ Info\ file GNU Info text |
---|
350 | |
---|
351 | # correct TeX magic for Linux (and maybe more) |
---|
352 | # from Peter Tobias (tobias@server.et-inf.fho-emden.de) |
---|
353 | # |
---|
354 | 0 leshort 0x02f7 application/x-dvi |
---|
355 | |
---|
356 | # RTF - Rich Text Format |
---|
357 | 0 string {\\rtf application/rtf |
---|
358 | |
---|
359 | #------------------------------------------------------------------------------ |
---|
360 | # animation: file(1) magic for animation/movie formats |
---|
361 | # |
---|
362 | # animation formats, originally from vax@ccwf.cc.utexas.edu (VaX#n8) |
---|
363 | # MPEG file |
---|
364 | 0 string \000\000\001\263 video/mpeg |
---|
365 | # |
---|
366 | # The contributor claims: |
---|
367 | # I couldn't find a real magic number for these, however, this |
---|
368 | # -appears- to work. Note that it might catch other files, too, |
---|
369 | # so BE CAREFUL! |
---|
370 | # |
---|
371 | # Note that title and author appear in the two 20-byte chunks |
---|
372 | # at decimal offsets 2 and 22, respectively, but they are XOR'ed with |
---|
373 | # 255 (hex FF)! DL format SUCKS BIG ROCKS. |
---|
374 | # |
---|
375 | # DL file version 1 , medium format (160x100, 4 images/screen) |
---|
376 | 0 byte 1 video/unknown |
---|
377 | 0 byte 2 video/unknown |
---|
378 | # Quicktime video, from Linus Walleij <triad@df.lth.se> |
---|
379 | # from Apple quicktime file format documentation. |
---|
380 | 4 string moov video/quicktime |
---|
381 | 4 string mdat video/quicktime |
---|
382 | |
---|