界面如下:

主要代码如下:

1 //对于每一个线程,传过去的参数
2 typedef struct ThreadParamStruct
3 {
4     CString strIP;            //要扫描的IP地址
5     UINT  uPort;            //要扫描的端口
6     BOOL  bNoOrder;            //是否按照随机的顺序扫描
7     CPortScan_TCPDlg *ptr;    //指向父线程的对话框
8     HTREEITEM TreeItem;        //指向结果要显示的树型控件节点
9 }THREADPARAM;

 1 UINT ThreadCSocketScan(LPVOID pParam)
 2 {
 3     THREADPARAM *threadparam = (THREADPARAM*)pParam;
 4     CString strIP = threadparam->strIP;
 5     UINT uPort = threadparam->uPort;
 6     CPortScan_TCPDlg *ptr = threadparam->ptr;
 7     HTREEITEM TreeItem = threadparam->TreeItem;
 8     BOOL bNoOrder = threadparam->bNoOrder;
 9
10     g_iTotalThreadCount++;
11     if (bNoOrder)
12     {
13         Sleep(rand() % 3000);
14     }
15
16     CSocket sock;
17     CString strTemp;
18     if (sock.Create())
19     {
20         if (sock.Connect(strIP, uPort))
21         {
22             if (uPort < 1024)
23             {
24                 struct servent *se;
25                 se = getservbyport(htons(uPort), _T("tcp"));
26                 if (se != NULL)
27                 {
28                     strTemp.Format(_T("%d %s"), uPort, se->s_name);
29                 }
30                 else
31                 {
32                     strTemp.Format(_T("%d"), uPort);
33                 }
34             }
35             else
36             {
37                 strTemp.Format(_T("%d %s"), uPort, ptr->GetPortName(uPort, TRUE));
38             }
39
40             ptr->m_wndTreeResult.InsertItem(strTemp, 2, 2, TreeItem);
41             sock.ShutDown(2);
42         }
43         sock.Close();
44     }
45
46     g_iTotalThreadCount--;
47     return 0;
48 }

 1 CString CPortScan_TCPDlg::GetPortName(UINT uPort, BOOL bIsTCP)
 2 {
 3     CString strRet;
 4     if (bIsTCP)
 5     {
 6         switch (uPort)
 7         {
 8         case 1024:
 9         case 1025:
10         case 1026:strRet = _T("常用动态分配的TCP端口"); break;
11         case 1080:strRet = _T("WinGate,IRC等防火墙管道"); break;
12         case 1243:strRet = _T("Sub-7木马"); break;
13         case 1433:strRet = _T("MSSQL数据库服务端口"); break;
14         case 1524:strRet = _T("ingreslock后门"); break;
15         case 2049:strRet = _T("NFS程序常用端口"); break;
16         case 3128:strRet = _T("Squid HTTP代理服务器"); break;
17         case 3306:strRet = _T("MySQL数据库服务端口"); break;
18         case 5632:strRet = _T("pcAnywere常用端口"); break;
19         case 31337:strRet = _T("Back Orifice"); break;
20         default:strRet = _T(""); break;
21         }
22     }
23     else
24     {
25         switch (uPort)
26         {
27         case 1024:
28         case 1025:
29         case 1026:strRet = _T("常用动态分配的UDP端口"); break;
30         case 31789:strRet = _T("Hack-a-tack远程访问木马"); break;
31         default:strRet = _T(""); break;
32         }
33     }
34     return strRet;
35 }

下载地址见后续博文。

转载于:https://www.cnblogs.com/qiyueliuguang/p/3496591.html

CSocket实现端口扫描相关推荐

  1. portscaner 多线程、多协程并发端口扫描

    import socket,time,re,sys,os,threading import gevent from gevent import monkey monkey.patch_all()soc ...

  2. 扫描服务器端口信息工具,服务器端口扫描工具

    服务器端口扫描工具 内容精选 换一换 2.3.2 端口扫描Internet上的大部分服务都使用一种基于TCP/IP协议的客户机/服务器的模式.在这种模式下,服务器端在某个TCP或UDP(User Da ...

  3. java 扫描tcp端口号_多线程TCP端口扫描 java实现

    界面部分: import java.awt.Color; import java.awt.Container; import java.awt.FlowLayout; import java.awt. ...

  4. python扫描器_7.python实现高效端口扫描器之nmap模块

    对于端口扫描,使用的最多的就是nmap这个工具,不想python已经强大到,提供了nmap这个扫描端口的模块. 本片文章主要介绍nmap模块的两个常用类: PortScanner()类,实现一个nma ...

  5. 使用Python进行端口扫描

    使用Python进行端口扫描 本文最后更新于2018-6-20,可能会因为没有更新而失效.如已失效或需要修正,请联系我! GitHub地址:https://github.com/zhang0peter ...

  6. python扫描端口脚本_Python实现的端口扫描功能示例

    本文实例讲述了Python实现的端口扫描功能.分享给大家供大家参考,具体如下: 一 代码 import sys import socket import multiprocessing def por ...

  7. 黑客渗透入门教程 第一课:粗暴的端口扫描

    很多人想学黑客知识,却不知如何入门,网上的教程也太繁琐,小白看了也头疼,那还是我来写黑客系列入门教程吧,跟着我做,你能黑客入门的. 端口扫描是指发送一组扫描消息,了解其提供的计算机网络服务类型(这些网 ...

  8. Kali linux 2016.2(Rolling)中metasploit的端口扫描

    目前常见的端口扫描技术一般有如下几类: TCP  Connect.TCP SYN.TCP ACK.TCP FIN. Metasploit中的端口扫描器 Metasploit的辅助模块中提供了几款实用的 ...

  9. 海量端口扫描工具masscan

    海量端口扫描工具masscan masscan号称是互联网上最快的端口扫描工具,可以6分钟扫描整个互联网,每秒可以发送一百万个数据包.为了提高处理速度,masscan定制了TCP/IP栈,从而不影响本 ...

  10. Nmap源码分析(端口扫描)

    端口扫描是Nmap的核心功能,用于确定目标机的端口状态(开放.关闭.过滤等),也为Nmap的服务与版本扫描.OS扫描.脚本扫描提供基本的指引信息.所以,深入理解端口扫描的实现对分析其他的扫描方式很有帮 ...

最新文章

  1. 三维点云的深度学习研究综述
  2. Python入门 io篇
  3. 定时发送服务器运行数据并设置阀值警报方法
  4. 微信windows版_刚刚微信内测更新!可以批量管理好友,太方便了
  5. oracle 插入含字符串
  6. 背包问题的二进制优化
  7. 用html还是xml做网页好,XML与HTML的比较
  8. java 整型变量,Java 整型变量
  9. CentOS 5.5 使用 EPEL 和 RPMForge 软件库
  10. showModalDialog 的重要提示
  11. Android系统签名文件
  12. 矮人DOS工具箱 V4.2 安装及使用
  13. model-based强化学习入门
  14. Python照片隐写术——照片内嵌信息(含模型、测试图片、测试视频)
  15. 鹏业云计价i20(四川)CJZ阅读模式功能
  16. 关于ERP系统,你可能不知道的10件事
  17. 请告诉我IT行业缺少怎样的人
  18. 高中英语教师资格证考试经验贴
  19. t-testdisk 分区恢复
  20. 用PyCharm连接远程服务器,设置Python解释器时fail to connect解决办法

热门文章

  1. 三维绘图之Mayavi.mlab
  2. python接口自动化登录后保存个人简介_python接口自动化三(登录及发帖)
  3. Android 属性动画(一)
  4. 聚会「AHOI 2008」
  5. 理解JavaScript中原型继承
  6. Mysql的跨表更新
  7. JAVA中反射机制五(JavaBean的内省与BeanUtils库)
  8. canvas.clipPath canvas.clipRect() 无效的原因
  9. 随笔 --- 深夜反思、重定向
  10. 浮动路由与VRRP的概念