实验三端口扫描

2020-04-17 04:19

实验三、端口扫描

1、实验目的与要求

? 掌握网络编程模式。

? 理解并能应用socket来扫描端口号

2、实验设备与环境

连网PC机(至少一台)。

计算机硬件要求:英特尔 酷睿i5 3代系列处理器、256MB以上内存,Ethernet网卡,网线若干。

计算机软件要求: Windows 7操作系统,Visual c++6.0/.net系统。

3、实验要求

能够以可视化的形式显示主机面

能够实现TCP端口的扫描 能够实现UDP端口的扫描

4、实验内容与步骤: 步骤1:

使用VC++的应用程序生成向导(MFC AppWizard[exe])创建一个基于对话框的工程,该工程的名称为201200824302PortScan

步骤2:

设计主界面:

同时在类向导里面添加需要的变量:

步骤3:添加事件

3.1添加响应“TCP扫描”按钮的事件:

void CMy201200824302PortScanDlg::OnTcp() { UpdateData(true); WSADATA WSAData; CString str; if(WSAStartup(0x0202,&WSAData)!=0) { MessageBox(\初始化Winsock失败!\ } soc=socket(AF_INET,SOCK_STREAM,0); if(soc==INVALID_SOCKET) { MessageBox(\创建socket失败!\ WSACleanup(); return; } int IpAddress; int i=0;

CString s;

m_ip.GetWindowText(s); IpAddress=inet_addr(s);

if(IpAddress==INADDR_NONE) { hostent * pHostent=gethostbyname(str); if(pHostent) IpAddress=(*(in_addr*)pHostent->h_addr).s_addr; }

if(m_port1>m_port2) {

MessageBox(\请确保起始端口号不大于终止端口号!\ WSACleanup(); return; }

struct sockaddr_in desthost;

memset(&desthost,0,sizeof(desthost)); desthost.sin_family=AF_INET;

desthost.sin_addr.s_addr=IpAddress;

for(unsigned int a=m_port1;a

}

m_static+=str; m_static+=\:Open\\r\\n\ m_static+=\ } }

UpdateData(false); closesocket(soc); WSACleanup();

3.2添加响应“UDP扫描”按钮的事件:

void CMy201200824302PortScanDlg::OnUdp() { UpdateData(true); WSADATA WSAData; CString str; if(WSAStartup(0x0202,&WSAData)!=0) { MessageBox(\初始化Winsock失败!\ } soc=socket(AF_INET,SOCK_STREAM,0); if(soc==INVALID_SOCKET) { MessageBox(\创建socket失败!\ WSACleanup(); return; } int nIotr1;//设置阻塞模式 unsigned long flag=1; nIotr1=ioctlsocket(soc,FIONBIO,&flag); if(nIotr1==SOCKET_ERROR) { MessageBox(\创建socketM模式失败!\ closesocket(soc); WSACleanup(); return; }


实验三端口扫描.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:有害物质过程管理(2017版)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: