c端口扫描代码

合集下载

主板检测卡代码大全

主板检测卡代码大全

主板检测卡代码大全一般来说代码:FF、00、C0、D0、CF、F1或什么也没有表示CPU没通过C1、C6、C3、D3、D4、D6、D8、B0、A7、E1表示内存不过24、25、26、01、0A、0B、2A、2B、31表示显卡不过某些集成显卡主板23、24、25表示可以正常点亮,某些VIA芯片组显示13则表示可以点亮,某些品牌机里的主板显示0B则表示正常,某些主板显示4E表示正常点亮,某些INTEL芯片组的主板显示26或16则表示可以正常点亮。

C1、C6、C3、01、02这个组合循环跳变大部分是I/0坏或刷BIOS如显示05、ED、41则直接刷BIOS 00 .已显示系统的配置;即将控制INI19引导装入。

.01 处理器测试1,处理器状态核实,如果测试失败,循环是无限的。

处理器寄存器的测试即将开始,不可屏蔽中断即将停用。

CPU寄存器测试正在进行或者失败。

02 确定诊断的类型正常或者制造。

如果键盘缓冲器含有数据就会失效。

停用不可屏蔽中断;通过延迟开始。

CMOS写入/读出正在进行或者失灵。

03 清除8042键盘控制器,发出TESTKBRD命令 AAH 通电延迟已完成。

ROM BIOS 检查部件正在进行或失灵。

04 使8042键盘控制器复位,核实TESTKBRD。

键盘控制器软复位/通电测试。

可编程间隔计时器的测试正在进行或失灵。

05 如果不断重复制造测试1至5,可获得8042控制状态。

已确定软复位/通电;即将启动ROM。

DMA初如准备正在进行或者失灵。

06 使电路片作初始准备,停用视频、奇偶性、DMA电路片,以及清除DMA电路片,所有页面寄存器和CMOS停机字节。

已启动ROM计算ROM BIOS检查总和,以及检查键盘缓冲器是否清除。

DMA初始页面寄存器读/写测试正在进行或失灵。

07 处理器测试2,核实CPU寄存器的工作。

ROM BIOS检查总和正常,键盘缓冲器已清除,向键盘发出BAT 基本保证测试命令。

C语言中的网络攻防与渗透测试

C语言中的网络攻防与渗透测试

C语言中的网络攻防与渗透测试在当今信息时代,网络攻防和渗透测试成为了计算机领域中备受关注的话题。

作为一种广泛应用的编程语言,C语言在网络攻防和渗透测试中扮演着重要的角色。

本文将探讨C语言在网络攻防和渗透测试中的应用以及相应的注意事项。

第一节:C语言在网络攻防中的应用1. 网络扫描和端口扫描网络扫描是指通过对目标网络进行主机探测、端口扫描等活动,获取有关网络拓扑结构和设备信息的方法。

C语言提供了丰富的网络编程库,如libpcap和WinPcap,可以方便地实现网络扫描和端口扫描功能。

通过编写C语言程序,可以实现对目标网络的主机和端口的扫描,进而进行网络攻防的工作。

2. 缓冲区溢出攻击缓冲区溢出攻击是一种常见的网络攻击方式,攻击者通过向程序输入超出缓冲区预留空间的数据,覆盖其他内存区域,进而执行恶意代码。

C语言在处理字符串和数组等数据结构时,存在一定的风险。

因此,在网络攻防中,需要特别小心处理输入数据,防止缓冲区溢出攻击的漏洞。

第二节:C语言在渗透测试中的应用1. 弱点搜索和漏洞挖掘渗透测试是指模拟攻击者的方式,评估目标系统的安全性,并发现其中的弱点和漏洞。

C语言作为一种底层语言,可以通过编写自定义工具和脚本来进行弱点搜索和漏洞挖掘。

C语言的高效性和灵活性使其成为渗透测试工程师的首选语言之一。

2. 加密算法的实现和破解加密算法在渗透测试中扮演着重要的角色。

C语言提供了丰富的数据结构和算法库,例如OpenSSL。

使用C语言,可以实现各种加密算法,同时也可以编写破解工具,对目标系统的加密算法进行测试和分析。

第三节:C语言网络攻防与渗透测试的注意事项1. 合法性和合规性在进行网络攻防和渗透测试时,必须确保自己的行为合法,并遵守相应的法律法规和道德准则。

未经授权的攻击活动可能构成犯罪行为,因此在使用C语言进行网络攻防和渗透测试时,必须保持审慎和遵守相关法规。

2. 风险评估和备份在进行网络攻防和渗透测试前,需要对目标系统进行风险评估,充分了解可能带来的风险和影响。

masscan用法

masscan用法

masscan用法Masscan是一款高速的端口扫描工具,它使用C异步套接字编程,可以非常快速地扫描大量的目标主机和端口。

Masscan可用于网络安全评估、网络发现、漏洞检测以及渗透测试等任务。

以下是Masscan的用法说明:1. 安装Masscan2.扫描单个主机使用masscan命令加上要扫描的目标IP地址即可对单个主机进行扫描。

例如,以下命令将对目标IP地址为192.168.0.1的主机进行扫描:`masscan 192.168.0.1`3.扫描多个主机如果要扫描多个主机,可以将目标IP地址以逗号分隔并包括在花括号内。

例如,以下命令将扫描192.168.0.1和192.168.0.2两个主机:`masscan {192.168.0.1,192.168.0.2}`4.扫描整个子网如果要扫描整个子网,可以使用CIDR表示法。

例如,以下命令将扫描192.168.0.0/24子网内的所有主机:`masscan 192.168.0.0/24`5.扫描指定端口使用-p参数指定要扫描的端口或端口范围。

例如,以下命令将扫描192.168.0.1主机上的80端口和443端口:`masscan 192.168.0.1 -p80,443`6.扫描所有端口使用-p0参数可以扫描目标主机上的所有端口。

例如,以下命令将扫描192.168.0.1主机上的所有端口:`masscan 192.168.0.1 -p0`7.配置扫描速度8.输出结果到文件使用-oG参数可以将扫描结果输出到文件中。

可以使用不同的格式进行输出,如grepable、xml和json。

例如,以下命令将扫描结果以grepable格式输出到scan.txt文件中:`masscan 192.168.0.1 -p80 -oG scan.txt`9.扫描服务指纹使用--banners参数可以在扫描时获取目标主机的服务指纹信息。

这些信息包括开放的端口以及端口上运行的服务和版本号。

例举nmap的使用命令语句

例举nmap的使用命令语句

nmap是一个强大的网络扫描工具,可以用于扫描目标主机的开放端口、服务和版本信息等。

以下是一些常见的nmap使用命令语句:
1. 扫描指定IP地址范围的所有主机:
php复制代码nmap -sn <IP地址范围>
2. 扫描指定IP地址的主机,并尝试猜测服务版本:
php复制代码nmap -sV <IP地址>
3. 扫描指定IP地址范围的所有主机,并尝试猜测服务版本:
php复制代码nmap -sV <IP地址范围>
4. 扫描指定IP地址的主机,并列出所有开放的端口:
php复制代码nmap -p- <IP地址>
5. 扫描指定IP地址范围的所有主机,并列出所有开放的端口:
php复制代码nmap -p- <IP地址范围>
6. 扫描指定IP地址的主机,并列出所有开放的服务:
php复制代码nmap -sC <IP地址>
7. 扫描指定IP地址范围的所有主机,并列出所有开放的服务:
php复制代码nmap -sC <IP地址范围>
以上只是nmap的一些基本用法,还有更多高级选项和参数可以用于更复杂的网络扫描任务。

你可以通过运行nmap --help命令来获取更详细的帮助信息。

计算机网络课程设计++端口扫描++实验报告

计算机网络课程设计++端口扫描++实验报告

目录1需求分析 (3)1.1课程设计目的 (3)1.2课程设计内容 (3)1.3课程设计要求 (3)2概要设计 (3)2.1原理概述 (3)2.2运行环境 (3)2.3基本设计思路 (3)2.4功能模块设计 (3)3详细设计 (3)3.1程序流程 (3)3.2主要算法 (5)3.3主要数据结构 (6)3.4主要函数说明 (6)4用户使用手册 (7)5项目分析与总结 (7)5.1项目分析 (7)5.2总结与建议 (8)附录 A源程序代码文件说明 (8)附录 B参考文献 (20)1.需求分析1.1课程设计目的加深对 TCP/IP 的理解,熟悉 socket 编程。

课程设计内容实现一个扫描器,使用 TCPconnect 进行端口扫描,并把扫描到的结果记录下来。

课程设计要求(1) Windows 或 Linux 环境下,程序在单机上运行;(2)使用端口扫描对一台主机进行扫描,并显示出结果;对一个网段进行IP 扫描,显示出结果;(3)提供友好的用户界面。

2.概要设计2.1原理概述TCPconnect 扫描是最基本的扫描,操作系统提供的 connect ()系统调用,用来与每一个感兴趣的目标计算机的端口进行连接。

如果端口处于侦听状态,那么connect ()就能成功。

否则,这个端口是不能用的,即没有提供服务。

2.2 运行环境Windows xp,VC++6.02.3 基本设计思路创建一个 CSocket 套接字,通过 CSocket 的 Connect 函数测试该主机的某个端口是否能够连通,获得该端口的打开状态。

2.4 功能模块设计(1)测试主机某个端口是否打开;(2)“扫描结果”标题栏;(3)扫描单个或多个端口的单选按钮;(4)“扫描”,“停止”,“保存”按钮。

3.详细设计3.1程序流程开始扫描初始化T F扫描单个端口?m_bSinglePort=true;m_bSinglePort=false;m_cSinglePort.EnableWindow();m_cSinglePort.EnableWindow(false); m_cPortFrom.EnableWindow(false);m_cPortFrom.EnableWindow();m_cPortTo.EnableWindow(false);m_cPortTo.EnableWindow();m_cBtnStop.EnableWindow(false);m_cBtnStop.EnableWindow(false);设置端口开始侦听端口T有错误?F显示结果设置下一端口扫描结束3.2主要算法( 1)测试主机某个端口是否打开的函数TestConnection ():BOOL CMyDlg::TestConnection(CString IP,UINT nPort){ CSocket* pSocket;pSocket=new CSocket;ASSERT(pSocket);if (!pSocket->Create()){ delete pSocket;pSocket=NULL;return false;}while (!pSocket->Connect(IP,nPort)){ delete pSocket;pSocket=NULL;return false;}pSocket->Close();delete pSocket;return true;}( 2)响应单选按钮“扫描单个端口”和“扫描多个端口”的单击消息:void CMyDlg::OnRadio1Single(){m_bSinglePort=true;m_cSinglePort.EnableWindow();m_cPortFrom.EnableWindow(false);m_cPortTo.EnableWindow(false);m_cBtnStop.EnableWindow(false);}void CMyDlg::OnRadio2Range(){ m_bSinglePort=false;m_cSinglePort.EnableWindow(false);m_cPortFrom.EnableWindow();m_cPortTo.EnableWindow();m_cBtnStop.EnableWindow(false);}( 3)显示列表框标题栏的成员函数://增加列表框标题栏的某一列BOOLCMyDlg::AddColumn(LPCTSTR strItem,int nItem,int nSubItem,int nMask,int nFmt) {LV_COLUMN lvc;lvc.mask=nMask;lvc.fmt=nFmt;lvc.pszText=(LPTSTR) strItem;lvc.cx=m_cResult.GetStringWidth(lvc.pszText)+25;if(nMask&LVCF_SUBITEM){ if(nSubItem!=-1)lvc.iSubItem=nSubItem;elselvc.iSubItem=nItem;}return m_cResult.InsertColumn(nItem,&lvc);}//在列表框中加一条BOOL CMyDlg::AddItem(int nItem,int nSubItem,LPCTSTR strItem ,int nImageIndex){ LV_ITEM lvItem;lvItem.mask=LVIF_TEXT;lvItem.iItem=nItem;lvItem.iSubItem=nSubItem;lvItem.pszText=(LPTSTR)strItem;if(nImageIndex!=-1){ lvItem.mask|=LVIF_IMAGE;lvItem.iImage|=LVIF_IMAGE;}if(nSubItem==0)return m_cResult.InsertItem(&lvItem);return m_cResult.SetItem(&lvItem);}//加一列标题栏字符void CMyDlg::AddHeader(LPTSTR hdr){ if (m_pColumns)m_pColumns->AddTail(hdr);}//显示列表框标题栏void CMyDlg::ShowHeaders(){int nIndex=0;POSITION pos=m_pColumns->GetHeadPosition();while(pos){ CString hdr=(CString)m_pColumns->GetNext(pos);AddColumn(hdr,nIndex++);}}(4)“扫描”,“停止”,“保存”按钮,见附录程序。

扫描工具SuperScan使用教程

扫描工具SuperScan使用教程
关于扫描选项(Scan Options) Scan Options 项,如图 D 所示,允许进一步的控制扫描进程。菜单中的首选项 是定制扫描过程中主机和通过审查的服务数。1 是默认值,一般来说足够了,除 非你的连接不太可靠。
~vseralgoupnmb,thwi±=cyxfz.P-23dqFG
图 D:在 Scan Options 项中,能够控制扫描速度和通过扫描的数量。
Scan Options 中的接下来的选项,能够设置主机名解析的数量。同样,数量 1 足够了,除非你的连接不可靠。
另一个选项是获取标志(Banner Grabbing)的设置,Banner Grabbing 是根据 显示一些信息尝试得到远程主机的回应。默认的延迟是 8000 毫秒,如果你所连 接的主机较慢,这个时间就显的不够长。
rsevalgoupnmb,thwi±=cyxfz.P-2~3dqFG
图 E:能够通过点选不同的按纽,收集各种主机信息。 关于 Windows 枚举选项(Windows Enumeration) 最后的功能选项是 Windows 枚举选项,就象你大概猜测的一样,如果你设法收 集的信息是关于 Linux/UNIX 主机的,那这个选项是没什么用的。但若你需要 Windows 主机的信息,它确实是很方便的。如图 F 所示,能够提供从单个主机到 用户群组,再到协议策略的所有信息。这个选项给人的最深刻的印象是它产生 大量的透明信息。
rsevalgoupnmb,thwi±=cyxfz.P-2~3dqFG
图 F:Windows 枚举选项能够产生关于 Windows 主机的大量信息。 总结 SuperScan 是每个网络管理员必须具备的几种工具之一,作为安全审核工具包的 一部分。如果你知道黑客能够看到你网络中的哪些信息,那么你将知道如何减 轻众多的潜在攻击,并有效保护公司的重要资产

网络安全 端口扫描

网络安全 端口扫描

网络安全端口扫描网络安全是指防止未经授权的访问、破坏、修改、泄漏、中断或伪造网络系统、网络设施和网络数据的行为。

在网络安全中,端口扫描是一种常见的安全评估方法,通过扫描网络设备的开放端口,来评估系统的安全性。

端口扫描指的是使用特定工具和技术,扫描一个网络设备上的端口,以确定哪些端口是打开的,以及相应的服务或应用程序在该端口上运行。

通过端口扫描,安全团队可以评估网络设备的安全性,并及时发现潜在的漏洞和威胁,以便采取相应的措施加以防范和解决。

端口扫描的目的主要有以下几点:1. 发现网络设备上的开放端口:通过端口扫描,可以确定哪些端口是开放的,这些开放端口可能暴露系统的服务和应用程序,成为攻击者的攻击点。

2. 识别运行在开放端口上的服务或应用程序:端口扫描可以识别运行在开放端口上的服务或应用程序,这可以帮助安全团队了解网络设备的功能和配置情况。

3. 发现漏洞和安全威胁:通过端口扫描,可以识别存在的漏洞和潜在的安全威胁,这可以帮助安全团队及时采取措施修补漏洞或防范威胁。

端口扫描主要有以下几种类型:1. TCP端口扫描:通过扫描TCP协议的端口,识别开放的端口和运行的服务或应用程序。

这是最常见和常用的端口扫描方法。

2. UDP端口扫描:通过扫描UDP协议的端口,识别开放的端口和运行的服务或应用程序。

UDP端口扫描相对复杂,因为UDP是面向无连接的协议。

3. SYN/ACK扫描:通过发送SYN包和接收ACK包的方式,来判断端口是否开放。

4. 隐蔽扫描:通过伪装成其他网络流量,来避免被目标系统检测出端口扫描的行为。

端口扫描是网络安全评估的重要环节,但同时也需要注意以下几点:1. 合法性:在进行端口扫描时,必须获得合法的授权,否则将涉及到非法入侵和侵犯隐私的问题。

2. 合规性:端口扫描必须遵守相关的法律法规和规范要求,特别是个人隐私和敏感信息的保护。

3. 明确目的:在进行端口扫描时,必须明确评估的目的,避免滥用和干扰正常的网络服务。

openwrt nc命令用法

openwrt nc命令用法

openwrt nc命令用法关于OpenWrt中的nc命令用法OpenWrt是一种自由及开放源代码之路由器操作系统,它具有良好的可扩展性和定制化特性,以满足各种网络环境的需求。

在OpenWrt中,nc (netcat)命令是一个非常强大的工具,它用于在网络上进行数据交互和端口扫描。

本文将一步一步地介绍nc命令的用法和功能,以帮助读者更好地理解和应用这个功能强大的命令。

第一步:安装nc命令在OpenWrt中,默认情况下并没有安装nc命令,但我们可以通过软件包管理器来安装它。

首先,我们需要通过SSH登录到OpenWrt的终端界面。

然后,使用以下命令更新软件包索引:opkg update更新完成后,我们可以使用以下命令进行包搜索:opkg list grep netcat这将列出所有包含"netcat"关键字的软件包。

请注意,OpenWrt中提供了多个版本的nc命令(例如:netcat-core、netcat-openbsd、netcat-traditional等),您可以根据自己的需求选择适合你的版本。

一旦找到了合适的版本,我们可以使用以下命令进行安装:opkg install <package_name>其中,<package_name>是您选择的nc软件包的名称。

第二步:nc命令的基本用法一旦nc命令安装成功,我们就可以开始使用它了。

以下是nc命令的基本用法:nc [options] [hostname] [port]其中,[options]是可选的参数,[hostname]是目标主机的IP地址或域名,[port]是目标主机上的端口号。

举个例子,如果我们想连接到IP地址为192.168.1.100的主机的80端口,我们可以使用以下命令:nc 192.168.1.100 80这将建立与目标主机的80端口的TCP连接。

第三步:nc命令的高级用法除了基本用法之外,nc命令还提供了一些高级功能,以下是一些常用的用法:1. 监听端口使用nc命令,我们可以将主机变成一个监听端口的服务器。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include <stdafx.h>#include <stdio.h>#include <string.h>#include <winsock.h>#pragma comment (lib,"ws2_32.lib")int main(int argc, char *argv[]) {int mysocket;int pcount = 0;struct sockaddr_in my_addr;WSADATA wsaData;WORD wVersionRequested=MAKEWORD(1,1);if(argc < 3) {printf("usage: %s <host> <maxport>\n", argv[0]);exit(1);}if (WSAStartup(wVersionRequested , &wsaData)){printf("Winsock Initialization failed.\n");exit(1);}for(int i=1; i < atoi(argv[2]); i++){if((mysocket = socket(AF_INET, SOCK_STREAM,0)) == INV ALID_SOCKET){ printf("Socket Error");exit(1);}my_addr.sin_family = AF_INET;my_addr.sin_port = htons(i);my_addr.sin_addr.s_addr = inet_addr(argv[1]);if(connect(mysocket, (struct sockaddr *)&my_addr, sizeof(struct sockaddr)) == SOCKET_ERROR)closesocket(mysocket);else{pcount++;printf("Port %d - open\n", i);}}printf("%d ports open on host - %s\n", pcount, argv[1]);closesocket(mysocket);WSACleanup();return 0;}代码二:#include <afxext.h>#include <winsock.h>// 编译时需使用的库#pragma comment(lib,"wsock32.lib")// select()成员定义#define ZERO (fd_set *)0// 变量定义int maxth, scanok, scannum;int portip, hoststart, hoststop, startport, endport; //定义了开始I和结束P地址,开始和结束端口long searchnum, searched;void usage(char *); // 定义显示使用方法函数void playx(int); // 定义状态提示函数void setip2(char *); // 定义设置IP函数void customport(char *, char *, char *); // 定义自定义扫描端口函数void portscannow(int); // 定义端口扫描扫描// 主程序int main(int argc, char *argv[]){WSADATA wsadata;// 清屏system("cls.exe");// 显示版本信息printf("\r\n==================== HUC Command Line PortScanner V0.2 ====================");printf("\r\n=============== By Lion, Welcome to [url][/url] ===============\r\n\n");// 检查输入if ((argc < 3) || (argc > 4)){// 显示帮助提示usage(argv[0]);return -1;}// 检测是否为port扫描if(!(stricmp(strlwr(argv[1]), "-p") == 0)){usage(argv[0]);return -1;}// 程序初始化if (WSAStartup(MAKEWORD(1,1), &wsadata) != 0) //如果初始化错误{printf("\r\nWsatartup error"); //出错信息return -1;}// 端口扫描参数转换// 如果参数为三个if (argc == 3){// 直接设置IPsetip2(argv[2]);}// 如果参数为四个elseif (argc == 4){// 进入定制端口扫描处理customport(argv[0], argv[2], argv[3]);}// 参数过多显示帮助else{usage(argv[0]);return -1;}// 扫描端口开始portscannow(argc);WSACleanup();return 0;}// 帮助提示函数void usage(char * prog){printf("Usage: %s <Option>", prog);printf("\r\n\n <Option>:");printf("\r\n -p [ Port|StartPort-EndPort ] < HostName|IP|StartIP-EndIP >"); printf("\r\n\n Example: ");printf("\r\n %s -p 192.168.0.1", prog);printf("\r\n %s -p 192.168.0.1-192.168.0.254", prog);printf("\r\n %s -p 21-80 192.168.0.1", prog);printf("\r\n %s -p 21-80 192.168.0.1-192.168.0.254\r\n", prog);return;}// 进度提示void playx(int play = 0){// 进度条char *plays[12]={" | "," / "," - "," \\ "," | "," / "," - "," \\ "," | "," / "," - "," \\ ",};if (searchnum != 0){for (int i = 0 ; i <= 3; i ++){printf(" =%s= %d%s Completed. \r", plays[i] , searched * 100 / (searchnum + 1), "%"); Sleep(5);}}else{printf(" =%s=\r", plays[play]); //显示进度Sleep(10);}}// 设置IPvoid setip2(char *cp){int host;struct hostent *testhost;char *startip = "", *endip = "";// 判断是否为192.168.0.1-192.168.0.254 形式的输入if (strstr(cp, "-") && strlen(cp) > 15 && strlen(cp) < 32){// 提取出结束IPendip = strchr(cp, ''-'') + 1;// 提取出开始IPstrncpy(startip, cp, strlen(cp) - strlen(strchr(cp, ''-'')));// 给控制要扫描IP段的变量赋值hoststart = ntohl(inet_addr(startip));hoststop = ntohl(inet_addr(endip));}else{// 取得输入的主机地址testhost = gethostbyname(startip);// 如果地址不存在if(!testhost){WSACleanup( );printf("\r\nCan''t get ip of: %s", cp);exit(-1);}// 给控制要扫描IP段的变量赋值memcpy(&host, testhost->h_addr, 4);hoststop = hoststart = ntohl(host);}}// 测试线程是否已满void TestThread(int thread = 200){for (;;){playx();// 测试线程是否已满if (maxth > thread)Sleep(100);else break;}return;}// 等待线程结束函数void WaitThreadEnd(){// 延时Sleep(6000);// 显示等待提示printf("\r \r\n");printf(" Wait ( %d )Thread end...\r\n", maxth);for(;;){// 判断所有线程是否已经结束if (maxth > 0){// 延时等待线程序结束Sleep(100);playx();continue;}else break;}printf("\r\n");return;}// 定制端口扫描参数定义void customport(char *cp, char *cp2, char *cp3) {int intport;char *checker;// 处理要扫描的端口// 扫描开始端口变量赋值startport = atoi(cp2);// 扫描结束端口变量赋值endport = atoi(cp2);// 判断是否21-80 形式if (strstr(cp2,"-")){intport = atoi(checker = strchr(cp2, ''-'') + 1);if (intport > 0 && intport < 65536)// 扫描结束端口变量赋值endport = intport;}// 端口大小判断if (startport < 0 || startport > 65536 || endport < 0 || endport > 65535) {usage(cp);exit(-1);}// 处理ip地址setip2(cp3);}// 端口扫描函数UINT portscan(LPVOID port){int addr = portip; // 取得要扫描的地址int sock;struct fd_set mas。

相关文档
最新文档