Windows网络编程之端口扫描实验

实验三 端口扫描实验

1 实验类型
验证型实验
2 实验目的
1.了解端口扫描的基本概念和工作原理;
3 背景知识
1. 端口扫描原理
在“计算机网络”课程中,我们知道完成一次TCP 连接需要完成三次握手才能建立。端
口扫描正是利用了这个原理,通过假冒正常的连接过程,依次向目标主机的各个端口发送连
接请求,并根据目标主机的应答情况判断目标主机端口的开放情况,从而分析并对一些重要
端口实施攻击。
端口扫描的方式有两种,一种称为完整扫描,一次连接过程如下图所示:
完整扫描连接过程示意图
另一种扫描方式称为半开扫描,出于欺骗的目的,半开扫描在收到服务端的应答信号(SYN+ACK)后,不再发送响应信号(ACK)。一次连接过程如下图所示:
这里写图片描述
半开扫描连接过程示意图
这里写图片描述
4 实验内容
1、编写一个利用全连接的端口扫描程序,能显示目标主机的端口开放情况。要求能在命令
行输入要扫描的目标主机和端口范围。比如:scan ... nnnn-mmmm。
代码如下:

#include<stdio.h>
#include<WINSOCK2.H>
#include<string.h>
#include<iphlpapi.h>
#pragma comment(lib,"WS2_32.lib")
int main(){
    WSADATA WSAData;
    sockaddr_in addr; //用来创建socket的结构体
    char IpAddress[100]; //待扫描的主机IP地址
    char startPort[10],endPort[10]; //开始和结束的端口号
    printf("请输入要扫描的主机IP地址:");
    gets(IpAddress);
    printf("请输入开始扫描的端口号:");
    gets(startPort);
    printf("请输入开始结束的端口号:");
    gets(endPort);

    if(WSAStartup(MAKEWORD(2,2),&WSAData)!=0){ //初始化Winsock2
  • 8
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值