1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9.  
  10. using WIA;
  11. using System.IO;
  12. using System.Drawing.Imaging;
  13. using iTextSharp;
  14. using iTextSharp.text;
  15. using iTextSharp.text.pdf;
  16. using System.Drawing.Drawing2D;
  17.  
  18. namespace printTest
  19. {
  20.  
  21. public partial class Form1 : Form
  22. {
  23.  
  24. List<System.Drawing.Image> images = new List<System.Drawing.Image>();
  25. public static List<string> GetDevices()
  26. {
  27. List<string> devices = new List<string>();
  28. WIA.DeviceManager manager = new WIA.DeviceManager();
  29. foreach (WIA.DeviceInfo info in manager.DeviceInfos)
  30. {
  31. devices.Add(info.DeviceID);
  32. }
  33. return devices;
  34. }
  35.  
  36. const string wiaFormatBMP = "{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}";
  37. class WIA_DPS_DOCUMENT_HANDLING_SELECT
  38. {
  39. public const uint FEEDER = 0x00000001;
  40. public const uint FLATBED = 0x00000002;
  41. }
  42. class WIA_DPS_DOCUMENT_HANDLING_STATUS
  43. {
  44. public const uint FEED_READY = 0x00000001;
  45. }
  46. class WIA_PROPERTIES
  47. {
  48. public const uint WIA_RESERVED_FOR_NEW_PROPS = ;
  49. public const uint WIA_DIP_FIRST = ;
  50. public const uint WIA_DPA_FIRST = WIA_DIP_FIRST + WIA_RESERVED_FOR_NEW_PROPS;
  51. public const uint WIA_DPC_FIRST = WIA_DPA_FIRST + WIA_RESERVED_FOR_NEW_PROPS;
  52. //
  53. // Scanner only device properties (DPS)
  54. //
  55. public const uint WIA_DPS_FIRST = WIA_DPC_FIRST + WIA_RESERVED_FOR_NEW_PROPS;
  56. public const uint WIA_DPS_DOCUMENT_HANDLING_STATUS = WIA_DPS_FIRST + ;
  57. public const uint WIA_DPS_DOCUMENT_HANDLING_SELECT = WIA_DPS_FIRST + ;
  58. }
  59.  
  60. #region 画矩形使用到的变量
  61. Point p1; //定义鼠标按下时的坐标点
  62. Point p2; //定义移动鼠标时的坐标点
  63. Point p3; //定义松开鼠标时的坐标点
  64. #endregion
  65.  
  66. #region 缩放、裁剪图像用到的变量
  67. /// <summary>
  68. ///
  69. /// </summary>
  70. int x1; //鼠标按下时横坐标
  71. int y1; //鼠标按下时纵坐标
  72. int width; //所打开的图像的宽
  73. int heigth; //所打开的图像的高
  74. bool HeadImageBool = false; // 此布尔变量用来判断pictureBox1控件是否有图片
  75. #endregion
  76. Bitmap Bi; //定义位图对像
  77. public Form1()
  78. {
  79. InitializeComponent();
  80. }
  81.  
  82. #region 扫描1
  83. private void btnScan_Click(object sender, EventArgs e)
  84. {
  85.  
  86. listBox1.Items.Clear();
  87. lbDevices.Items.Clear();
  88. List<string> devices = GetDevices();
  89.  
  90. foreach (string device in devices)
  91. {
  92. lbDevices.Items.Add(device);
  93. }
  94. //check if device is not available
  95. if (lbDevices.Items.Count == )
  96. {
  97. MessageBox.Show("没有任何可用的打印、扫描设备!");
  98. this.Close();
  99. }
  100. else
  101. {
  102. lbDevices.SelectedIndex = ;
  103. }
  104.  
  105. bool hasMorePages = true;
  106. string deviceID = (string)lbDevices.SelectedItem;
  107. while (hasMorePages)
  108. {
  109. //select the correct scanner using the provided scannerId parameter
  110. WIA.DeviceManager manager = new WIA.DeviceManager();
  111. WIA.Device device = null;
  112. foreach (WIA.DeviceInfo info in manager.DeviceInfos)
  113. {
  114. if (info.DeviceID == deviceID)
  115. {
  116. // connect to scanner
  117. device = info.Connect();
  118. break;
  119. }
  120. }
  121. // device was not found
  122. if (device == null)
  123. {
  124. // enumerate available devices
  125. string availableDevices = "";
  126. foreach (WIA.DeviceInfo info in manager.DeviceInfos)
  127. {
  128. availableDevices += info.DeviceID + "\n";
  129. }
  130.  
  131. // show error with available devices
  132. throw new Exception("The device with provided ID could not be found. Available Devices:\n" + availableDevices);
  133. }
  134. int i = device.Items.Count;
  135. WIA.Item item = device.Items[] as WIA.Item;
  136.  
  137. try
  138. {
  139. // scan image
  140. WIA.ICommonDialog wiaCommonDialog = new WIA.CommonDialog();
  141. WIA.ImageFile image = (WIA.ImageFile)wiaCommonDialog.ShowTransfer(item, wiaFormatBMP, false);
  142.  
  143. // save to temp file
  144. string fileName = Path.GetTempFileName();
  145. File.Delete(fileName);
  146. image.SaveFile(fileName);//保存temp文件
  147. image = null;
  148. int leng = @"C:\Users\ll\AppData\Local\Temp".Length;
  149. // add file to output list
  150. listBox1.Items.Add(fileName.Substring(leng, fileName.Length - leng));
  151. //listBox1.Items.Add(fileName);
  152. images.Add(System.Drawing.Image.FromFile(fileName));//C:\Users\ll\AppData\Local\Temp
  153. }
  154. catch (Exception exc)
  155. {
  156. //MessageBox.Show(exc.Message);
  157. }
  158. finally
  159. {
  160. item = null;
  161. //determine if there are any more pages waiting
  162. WIA.Property documentHandlingSelect = null;
  163. WIA.Property documentHandlingStatus = null;
  164. foreach (WIA.Property prop in device.Properties)
  165. {
  166. if (prop.PropertyID == WIA_PROPERTIES.WIA_DPS_DOCUMENT_HANDLING_SELECT)
  167. documentHandlingSelect = prop;
  168. if (prop.PropertyID == WIA_PROPERTIES.WIA_DPS_DOCUMENT_HANDLING_STATUS)
  169. documentHandlingStatus = prop;
  170. }
  171.  
  172. // assume there are no more pages
  173. hasMorePages = false;
  174.  
  175. // may not exist on flatbed scanner but required for feeder
  176. if (documentHandlingSelect != null)
  177. {
  178. // check for document feeder
  179. if ((Convert.ToUInt32(documentHandlingSelect.get_Value()) & WIA_DPS_DOCUMENT_HANDLING_SELECT.FEEDER) != )
  180. {
  181. hasMorePages = ((Convert.ToUInt32(documentHandlingStatus.get_Value()) & WIA_DPS_DOCUMENT_HANDLING_STATUS.FEED_READY) != );
  182. }
  183. }
  184. }
  185. }
  186. if (images.Count >= )
  187. {
  188. pictureBox1.Image = images[];
  189. double imageX = pictureBox1.Image.Width;
  190. double imageY = pictureBox1.Image.Height;
  191.  
  192. double picX = pictureBox1.Width;
  193. double pixY = pictureBox1.Height;
  194.  
  195. //pictureBox2.Image = images[0];
  196. //pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
  197. }
  198. }
  199. #endregion
  200.  
  201. #region 保存
  202. private void button1_Click(object sender, EventArgs e)
  203. {
  204. if (pictureBox2.Image != null)
  205. {
  206. string where = @"E:\" + DateTime.Now.ToString("yyyy-MM-dd HHmmss");
  207. //save scanned image into specific folder
  208. pictureBox2.Image.Save(where + ".jpeg", ImageFormat.Jpeg);
  209.  
  210. // //iTextSharp.text.Rectangle pageSize = new iTextSharp.text.Rectangle(216f, 716f);
  211. // iTextSharp.text.Rectangle pageSize = new iTextSharp.text.Rectangle(216f, 716f);
  212. // pageSize.BackgroundColor = new iTextSharp.text.BaseColor(0xFF, 0xFF, 0xDE);
  213. // iTextSharp.text.Image img1 = iTextSharp.text.Image.GetInstance(pictureBox1.Image, iTextSharp.text.BaseColor.WHITE);
  214. // //设置边界
  215. // //Document document = new Document(pageSize, 36f, 72f, 108f, 180f);
  216. // Document document = new Document(pageSize, 36f, 72f, 108f, 180f);
  217. // PdfWriter.GetInstance(document, new FileStream(where + ".pdf", FileMode.Create));
  218. // // 添加文档信息
  219. // document.AddTitle("PDFInfo");
  220. // document.AddSubject("Demo of PDFInfo");
  221. // document.AddKeywords("Info, PDF, Demo");
  222. // document.AddCreator("SetPdfInfoDemo");
  223. // document.AddAuthor("zeda");
  224. // document.Open();
  225. // // 添加文档内容
  226. // document.Add(img1);
  227. // document.Close();
  228. }
  229. }
  230. #endregion
  231.  
  232. #region 顺时针旋转
  233. private void button4_Click(object sender, EventArgs e)
  234. {
  235. if (pictureBox1.Image != null)
  236. {
  237. try
  238. {
  239. Bitmap a = new Bitmap(pictureBox1.Image);//得到图片框中的图片
  240. pictureBox1.Image = Rotate(a, );
  241. //pictureBox1.SizeMode = PictureBoxSizeMode.AutoSize;
  242. pictureBox1.Location = panel1.Location;
  243. pictureBox1.Refresh();//最后刷新图片框
  244. }
  245. catch { }
  246. }
  247. }
  248. #endregion
  249.  
  250. #region 扫描4
  251. private void button5_Click(object sender, EventArgs e)
  252. {
  253. ImageFile imageFile = null;
  254. CommonDialogClass cdc = new WIA.CommonDialogClass();
  255.  
  256. try
  257. {
  258. imageFile = cdc.ShowAcquireImage(WIA.WiaDeviceType.ScannerDeviceType,
  259. WIA.WiaImageIntent.TextIntent,
  260. WIA.WiaImageBias.MaximizeQuality,
  261. "{00000000-0000-0000-0000-000000000000}",
  262. true,
  263. true,
  264. false);
  265.  
  266. string fileName = Path.GetTempFileName();
  267. File.Delete(fileName);
  268. if (imageFile != null)
  269. {
  270. imageFile.SaveFile(fileName);//保存temp文件
  271. imageFile = null;
  272. int leng = @"C:\Users\ll\AppData\Local\Temp".Length;
  273. // add file to output list
  274. listBox1.Items.Add(fileName.Substring(leng, fileName.Length - leng));
  275. //listBox1.Items.Add(fileName);
  276. images.Add(System.Drawing.Image.FromFile(fileName));//C:\Users\ll\AppData\Local\Temp
  277. foreach (System.Drawing.Image im in images)
  278. {
  279. string where = @"E:\" + DateTime.Now.ToString("yyyy-MM-dd HHmmss");
  280. //save scanned image into specific folder
  281. im.Save(where + ".jpeg", ImageFormat.Jpeg);
  282. }
  283. }
  284. }
  285. catch (System.Runtime.InteropServices.COMException)
  286. {
  287. imageFile = null;
  288. }
  289. }
  290. #endregion
  291. int i = ;
  292. #region 增加
  293. private void button2_Click(object sender, EventArgs e)
  294. {
  295. i++;
  296. label1.Text = i.ToString();
  297. if (i < images.Count && i >= )
  298. {
  299. pictureBox1.Image = images[i];
  300. //pictureBox2.Image = images[i];
  301. //pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
  302. }
  303. }
  304. #endregion
  305.  
  306. #region 减小
  307. private void button3_Click(object sender, EventArgs e)
  308. {
  309. i--;
  310. label1.Text = i.ToString();
  311. if (i < images.Count && i >= )
  312. {
  313. pictureBox1.Image = images[i];
  314. //pictureBox2.Image = images[i];
  315. //pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
  316. }
  317. }
  318. #endregion
  319.  
  320. #region 旋转
  321. private void button6_Click(object sender, EventArgs e)
  322. {
  323. if (pictureBox1.Image != null)
  324. {
  325. try
  326. {
  327. Bitmap a = new Bitmap(pictureBox1.Image);//得到图片框中的图片
  328. pictureBox1.Image = Rotate(a, -);
  329. //pictureBox1.SizeMode = PictureBoxSizeMode.AutoSize;
  330. pictureBox1.Location = panel1.Location;
  331. pictureBox1.Refresh();//最后刷新图片框
  332. }
  333. catch { }
  334. }
  335. }
  336. #endregion
  337.  
  338. #region 图片旋转函数
  339. /// <summary>
  340. /// 以逆时针为方向对图像进行旋转
  341. /// </summary>
  342. /// <param name="b">位图流</param>
  343. /// <param name="angle">旋转角度[0,360](前台给的)</param>
  344. /// <returns></returns>
  345. public Bitmap Rotate(Bitmap b, int angle)
  346. {
  347. angle = angle % ;
  348.  
  349. //弧度转换
  350. double radian = angle * Math.PI / 180.0;
  351. double cos = Math.Cos(radian);
  352. double sin = Math.Sin(radian);
  353.  
  354. //原图的宽和高
  355. int w = b.Width;
  356. int h = b.Height;
  357. int W = (int)(Math.Max(Math.Abs(w * cos - h * sin), Math.Abs(w * cos + h * sin)));
  358. int H = (int)(Math.Max(Math.Abs(w * sin - h * cos), Math.Abs(w * sin + h * cos)));
  359.  
  360. //目标位图
  361. Bitmap dsImage = new Bitmap(W, H);
  362. Graphics g = Graphics.FromImage(dsImage);
  363.  
  364. g.InterpolationMode = InterpolationMode.Bilinear;
  365.  
  366. g.SmoothingMode = SmoothingMode.HighQuality;
  367.  
  368. //计算偏移量
  369. Point Offset = new Point((W - w) / , (H - h) / );
  370.  
  371. //构造图像显示区域:让图像的中心与窗口的中心点一致
  372. System.Drawing.Rectangle rect = new System.Drawing.Rectangle(Offset.X, Offset.Y, w, h);
  373. Point center = new Point(rect.X + rect.Width / , rect.Y + rect.Height / );
  374. g.TranslateTransform(center.X, center.Y);
  375. g.RotateTransform( - angle);
  376.  
  377. //恢复图像在水平和垂直方向的平移
  378. g.TranslateTransform(-center.X, -center.Y);
  379. g.DrawImage(b, rect);
  380.  
  381. //重至绘图的所有变换
  382. g.ResetTransform();
  383.  
  384. g.Save();
  385. g.Dispose();
  386. return dsImage;
  387. }
  388. #endregion 图片旋转函数更多 0
  389.  
  390. private void Form1_Load(object sender, EventArgs e)
  391. {
  392. #region 滚动条
  393. panel2.AutoScroll = true;
  394. pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
  395.  
  396. panel3.AutoScroll = true;
  397. pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
  398.  
  399. #endregion
  400.  
  401. #region 自动缩放
  402. //pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
  403. //pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill;
  404.  
  405. //pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
  406. //pictureBox2.Dock = System.Windows.Forms.DockStyle.Fill;
  407. #endregion
  408. }
  409.  
  410. private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
  411. {
  412. this.Cursor = Cursors.Cross;
  413. this.p1 = new Point(e.X, e.Y);
  414. x1 = e.X;
  415. y1 = e.Y;
  416. if (this.pictureBox1.Image != null)
  417. {
  418. HeadImageBool = true;
  419. }
  420. else
  421. {
  422. HeadImageBool = false;
  423. }
  424. }
  425.  
  426. #region 移动鼠标发生的事件
  427. /// <summary>
  428. /// 鼠标移动事件
  429. /// </summary>
  430. /// <param name="sender"></param>
  431. /// <param name="e"></param>
  432. private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
  433. {
  434. if (this.Cursor == Cursors.Cross)
  435. {
  436. this.p2 = new Point(e.X, e.Y);
  437. if ((p2.X - p1.X) > && (p2.Y - p1.Y) > ) //当鼠标从左上角向开始移动时P3坐标
  438. {
  439. this.p3 = new Point(p1.X, p1.Y);
  440. }
  441. if ((p2.X - p1.X) < && (p2.Y - p1.Y) > ) //当鼠标从右上角向左下方向开始移动时P3坐标
  442. {
  443. this.p3 = new Point(p2.X, p1.Y);
  444. }
  445. if ((p2.X - p1.X) > && (p2.Y - p1.Y) < ) //当鼠标从左下角向上开始移动时P3坐标
  446. {
  447. this.p3 = new Point(p1.X, p2.Y);
  448. }
  449. if ((p2.X - p1.X) < && (p2.Y - p1.Y) < ) //当鼠标从右下角向左方向上开始移动时P3坐标
  450. {
  451. this.p3 = new Point(p2.X, p2.Y);
  452. }
  453. this.pictureBox1.Invalidate(); //使控件的整个图面无效,并导致重绘控件
  454. }
  455. }
  456. #endregion
  457.  
  458. #region 松开鼠标发生的事件,实例化ImageCut1类对像
  459. ImageCut1 IC1; //定义所画矩形的图像对像
  460. /// <summary>
  461. /// 鼠标放开事件
  462. /// </summary>
  463. /// <param name="sender"></param>
  464. /// <param name="e"></param>
  465. private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
  466. {
  467. if (HeadImageBool)
  468. {
  469. width = this.pictureBox1.Image.Width;
  470. heigth = this.pictureBox1.Image.Height;
  471. if ((e.X - x1) > && (e.Y - y1) > ) //当鼠标从左上角向右下方向开始移动时发生
  472. {
  473. IC1 = new ImageCut1(x1, y1, Math.Abs(e.X - x1), Math.Abs(e.Y - y1)); //实例化ImageCut1类
  474. }
  475. if ((e.X - x1) < && (e.Y - y1) > ) //当鼠标从右上角向左下方向开始移动时发生
  476. {
  477. IC1 = new ImageCut1(e.X, y1, Math.Abs(e.X - x1), Math.Abs(e.Y - y1)); //实例化ImageCut1类
  478. }
  479. if ((e.X - x1) > && (e.Y - y1) < ) //当鼠标从左下角向右上方向开始移动时发生
  480. {
  481. IC1 = new ImageCut1(x1, e.Y, Math.Abs(e.X - x1), Math.Abs(e.Y - y1)); //实例化ImageCut1类
  482. }
  483. if ((e.X - x1) < && (e.Y - y1) < ) //当鼠标从右下角向左上方向开始移动时发生
  484. {
  485. IC1 = new ImageCut1(e.X, e.Y, Math.Abs(e.X - x1), Math.Abs(e.Y - y1)); //实例化ImageCut1类
  486. }
  487.  
  488. if (IC1 != null)
  489. {
  490. this.pictureBox2.Width = (IC1.KiCut1((Bitmap)(this.pictureBox1.Image))).Width;
  491. this.pictureBox2.Height = (IC1.KiCut1((Bitmap)(this.pictureBox1.Image))).Height;
  492. this.pictureBox2.Image = IC1.KiCut1((Bitmap)(this.pictureBox1.Image));
  493.  
  494. //this.pictureBox2.Image = IC1.KiCut1((Bitmap)(this.pictureBox1.Image));
  495. //boolShow1 = true;
  496. //else if (pictureBox3.Image == null)
  497. //{
  498. // this.pictureBox3.Image = IC1.KiCut1((Bitmap)(this.pictureBox1.Image));
  499. // boolShow2 = true;
  500. //}
  501. //else
  502. //{
  503. // if (boolShow2 == true)
  504. // {
  505. // this.pictureBox2.Image = IC1.KiCut1((Bitmap)(this.pictureBox1.Image));
  506. // boolShow1 = true;
  507. // boolShow2 = false;
  508. // }
  509. // else
  510. // {
  511. // this.pictureBox3.Image = IC1.KiCut1((Bitmap)(this.pictureBox1.Image));
  512. // boolShow1 = false;
  513. // boolShow2 = true;
  514. // }
  515. //}
  516. }
  517. this.Cursor = Cursors.Default;
  518. }
  519. else
  520. {
  521. this.Cursor = Cursors.Default;
  522. }
  523. }
  524. #endregion
  525.  
  526. #region 重新绘制pictureBox1控件,即移动鼠标画矩形
  527. private void pictureBox1_Paint(object sender, PaintEventArgs e)
  528. {
  529. if (HeadImageBool)
  530. {
  531. Pen p = new Pen(Color.Black, );//画笔
  532. p.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
  533. //Bitmap bitmap = new Bitmap(strHeadImagePath);
  534. Bitmap bitmap = Bi;
  535. System.Drawing.Rectangle rect = new System.Drawing.Rectangle(p3, new Size(System.Math.Abs(p2.X - p1.X), System.Math.Abs(p2.Y - p1.Y)));
  536. e.Graphics.DrawRectangle(p, rect);
  537.  
  538. }
  539. else
  540. {
  541. }
  542. }
  543. #endregion
  544.  
  545. private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
  546. {
  547. //string fileName = DateTime.Now.ToString("yyyyMMddhhmmss");
  548. //string path = Path.GetFullPath("images/");
  549. //string[] files = Directory.GetFiles(path);
  550. //foreach (string file in files)
  551. //{
  552. // if (file == path + fileName + ".jpg")
  553. // {
  554. // return;
  555. // }
  556.  
  557. //}
  558. //using (Stream stream = new FileStream(path + fileName + ".jpg", FileMode.Create))
  559. //{
  560. // using (FileStream fs = new FileStream(listBox1.SelectedItem.ToString(), FileMode.Open))
  561. // {
  562. // byte[] bytes = new byte[1024 * 10];
  563. // int len;
  564. // while ((len = fs.Read(bytes, 0, bytes.Length)) > 0)
  565. // {
  566. // stream.Write(bytes, 0, len);
  567.  
  568. // }
  569. // }
  570. //}
  571. //System.Drawing.Image image = System.Drawing.Image.FromFile(path + fileName + ".jpg");
  572. //pictureBox1.Image = image;
  573. }
  574.  
  575. }
  576. }

WIA设备批量扫描的更多相关文章

  1. 批量扫描互联网无线路由设备telnet,并获取WIFI密码

    批量扫描互联网无线路由设备telnet,并获取WIFI密码 http://lcx.cc/?i=4513

  2. Burpsuite+sqlmap批量扫描sql漏洞

    1.burpsuite设置导出log n'd'k 输入文件名保存 2.sqlmap批量扫描     python sqlmap.py -l 文件名 --batch -smart     batch:自 ...

  3. BurpSuite导出log配合SQLMAP批量扫描注入点

    sqlmap可以批量扫描包含有request的日志文件,而request日志文件可以通过burpsuite来获取, 因此通过sqlmap结合burpsuite工具,可以更加高效的对应用程序是否存在SQ ...

  4. JBOSS批量扫描

    exploit-db提供出了EXP,如下: /* * JBoss JMXInvokerServlet Remote Command Execution * JMXInvoker.java v0.3 - ...

  5. sqlmap批量扫描burpsuite请求日志记录

    sqlmap可以批量扫描包含有request的日志文件,而request日志文件可以通过burpsuite来获取, 因此通过sqlmap结合burpsuite工具,可以更加高效的对应用程序是否存在SQ ...

  6. BBScan — 一个信息泄漏批量扫描脚本

    github:https://github.com/lijiejie/BBScan 有些朋友手上有几十万甚至上百万个域名,比如,乌云所有厂商的子域名. 如果把这30万个域名全部扔给wvs,APPsca ...

  7. wwwscan网站目录文件批量扫描工具

    准备一个比赛样题里面给的一个扫描的工具: 不知道怎么用就上网百度了一下果然有关于这个软件的两篇介绍(感觉写的很好),第一篇介绍的应该和我的工具一样,也给了例子(现在Google不能访问了)和参数介绍, ...

  8. sqlmap批量扫描burpsuite拦截的日志记录

    1.功能上,sqlmap具备对burpsuite拦截的request日志进行批量扫描的能力 python sqlmap.py -l hermes.log --batch -v 3 --batch:会自 ...

  9. 批量扫描IP端口程序 (适用于window&linux)

    批量扫描IP端口,根据扫描IP导出IP命名的文件的结果.假设1.txt文件内容为127.0.0.1192.168.1.1然后我们获取文件内容IP进行扫描window .bat版本 :1.txt为文件名 ...

随机推荐

  1. php&nbsp;curl_init函数用法

    原文地址:curl_init函数用法">php curl_init函数用法作者:loading 使用PHP的cURL库可以简单和有效地去抓网页.你只需要运行一个脚本,然后分析一下你所抓 ...

  2. (转)JS获取当前对象大小以及屏幕分辨率等

    Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> ...

  3. PHP关闭Notice错误提示

    原文出处 本文章介绍在php中关闭notice错误的一些做法,但是不得不说的是在关掉错误提示时,那么程序代码中大量的notice级别错误是否会造成PHP性能下降 PHP Notice: Undefin ...

  4. [压缩解压缩] SharpZip--压缩、解压缩帮助类

    里面有三个类都是用于压缩和解压缩的.大家看下图片 看下面代码吧 /// <summary> /// 类说明:SharpZip /// 编 码 人:苏飞 /// 联系方式:361983679 ...

  5. SQL-Server索引漫谈

    http://www.cnblogs.com/teroy/archive/2013/05/23/3070547.html

  6. [DB2]实现项目多数据库切换(上)--环境部署

    基本软硬件信息:Windows 8.1 X64 / Microsoft Visual Studio 2012  / ThinkPad S3-S431 安装工具:IBM Data Studio 4.1. ...

  7. 理解Javascript__undefined和null

    在 ECMAScript 的原始类型中,是有Undefined 和 Null 类型的. 这两种类型都分别对应了属于自己的唯一专用值,即undefined 和 null. alert(undefined ...

  8. [学习笔记]设计模式之Composite

    为方便读者,本文已添加至索引: 设计模式 学习笔记索引 写在前面 在Composite(组合)模式中,用户可以使用多个简单的组件以形成较大的组件,而这些组件还可能进一步组合成更大的.它重要的特性是能够 ...

  9. 修正constructor的指向

    function Aaa(){ } //Aaa.prototype.constructor = Aaa;   //每一个函数都会有的,都是自动生成的 Aaa.prototype.name = '小明' ...

  10. 如何禁用easyui-linkbutton 中的Click事件

    eg: <a id="btn" href="#" class="easyui-linkbutton" data-options=&qu ...