|
@@ -0,0 +1,78 @@
|
|
|
+package spiderutil
|
|
|
+
|
|
|
+import (
|
|
|
+ "fmt"
|
|
|
+ "strings"
|
|
|
+)
|
|
|
+
|
|
|
+var fileTypeMap map[string]string = map[string]string{
|
|
|
+ "ffd8ffe000104a464946": "jpg", //JPEG (jpg)
|
|
|
+ "89504e470d0a1a0a0000": "png", //PNG (png)
|
|
|
+ "474946383961": "gif", //GIF (gif)
|
|
|
+ "49492a00227105008037": "tif", //TIFF (tif)
|
|
|
+ "424d228c010000000000": "bmp", //16色位图(bmp)
|
|
|
+ "424d8240090000000000": "bmp", //24位位图(bmp)
|
|
|
+ "424d8e1b030000000000": "bmp", //256色位图(bmp)
|
|
|
+ "41433130313500000000": "dwg", //CAD (dwg)
|
|
|
+ "3c21444f435459504520": "html", //HTML (html)
|
|
|
+ "3c21646f637479706520": "htm", //HTM (htm)
|
|
|
+ "48544d4c207b0d0a0942": "css", //css
|
|
|
+ "696b2e71623d696b2e71": "js", //js
|
|
|
+ "7b5c727466315c616e73": "rtf", //Rich Text Format (rtf)
|
|
|
+ "38425053000100000000": "psd", //Photoshop (psd)
|
|
|
+ "46726f6d3a203d3f6762": "eml", //Email [Outlook Express 6] (eml)
|
|
|
+ "d0cf11e0a1b11ae10000": "doc", //MS Excel 注意:word、msi 和 excel的文件头一样
|
|
|
+ "504b0304140006000800": "docx", //docx、pptx文件
|
|
|
+ "504b03040a0000000000": "docx",
|
|
|
+ //"d0cf11e0a1b11ae10000": "vsd", //Visio 绘图
|
|
|
+ "5374616E64617264204A": "mdb", //MS Access (mdb)
|
|
|
+ "252150532D41646F6265": "ps",
|
|
|
+ "25504446": "pdf", //Adobe Acrobat (pdf) 25504446 255044462d312e350d0a
|
|
|
+ "2e524d46000000120001": "rmvb", //rmvb/rm相同
|
|
|
+ "464c5601050000000900": "flv", //flv与f4v相同
|
|
|
+ "00000020667479706d70": "mp4",
|
|
|
+ "49443303000000002176": "mp3",
|
|
|
+ "000001ba210001000180": "mpg", //
|
|
|
+ "3026b2758e66cf11a6d9": "wmv", //wmv与asf相同
|
|
|
+ "52494646e27807005741": "wav", //Wave (wav)
|
|
|
+ "52494646d07d60074156": "avi",
|
|
|
+ "4d546864000000060001": "mid", //MIDI (mid)
|
|
|
+ "504b0304140000000800": "zip",
|
|
|
+ "504b0304140000000000": "zip",
|
|
|
+ "526172211a0700": "rar", //526172211a0700 526172211a0700cf9073
|
|
|
+ "235468697320636f6e66": "ini",
|
|
|
+ "504b0304140008000800": "jar",
|
|
|
+ "4d5a9000030000000400": "exe", //可执行文件
|
|
|
+ "3c25402070616765206c": "jsp", //jsp文件
|
|
|
+ "4d616e69666573742d56": "mf", //MF文件
|
|
|
+ "3c3f786d6c2076657273": "xml", //xml文件
|
|
|
+ "494e5345525420494e54": "sql", //xml文件
|
|
|
+ "7061636b616765207765": "java", //java文件
|
|
|
+ "406563686f206f66660d": "bat", //bat文件
|
|
|
+ "1f8b0800000000000000": "gz", //gz文件
|
|
|
+ "6c6f67346a2e726f6f74": "properties", //bat文件
|
|
|
+ "cafebabe0000002e0041": "class", //bat文件
|
|
|
+ "49545346030000006000": "chm", //bat文件
|
|
|
+ "04000000010000001300": "mxp", //bat文件
|
|
|
+ "504b0304140004000800": "xlsx", //xlsx文件
|
|
|
+ //"d0cf11e0a1b11ae10000": "wps", //WPS文字wps、表格et、演示dps都是一样的
|
|
|
+ "6431303a637265617465": "torrent",
|
|
|
+
|
|
|
+ "6D6F6F76": "mov", //Quicktime (mov)
|
|
|
+ "FF575043": "wpd", //WordPerfect (wpd)
|
|
|
+ "CFAD12FEC5FD746F": "dbx", //Outlook Express (dbx)
|
|
|
+ "2142444E": "pst", //Outlook (pst)
|
|
|
+ "AC9EBD8F": "qdf", //Quicken (qdf)
|
|
|
+ "E3828596": "pwl", //Windows Password (pwl)
|
|
|
+ "2E7261FD": "ram", //Real Audio (ram)
|
|
|
+}
|
|
|
+
|
|
|
+func GetFileType(bt []byte) string {
|
|
|
+ start := fmt.Sprintf("%x", bt[:10])
|
|
|
+ for k, v := range fileTypeMap {
|
|
|
+ if strings.HasPrefix(start, k) {
|
|
|
+ return v
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return ""
|
|
|
+}
|