Quellcode durchsuchen

新增加密filetype工具类

mxs vor 1 Jahr
Ursprung
Commit
e757df01c9
1 geänderte Dateien mit 78 neuen und 0 gelöschten Zeilen
  1. 78 0
      spiderutil/filetype.go

+ 78 - 0
spiderutil/filetype.go

@@ -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 ""
+}