资源简介
一个端口就是一个潜在的通信通道,也就是一个入侵通道。本程序用c语言是实现端口扫描

代码片段和文件信息
#include
#include //printf函数要用的头文件
#pragma comment(lib“ws2_32.lib“)
void Help(); //申明帮助函数
int main(int argc char* argv[])
{
//申明变量
WORD wVersion = MAKEWORD(20); //socket的版本
WSADATA wsaData;
//sockaddr_in结构
struct sockaddr_in sin;
int iFromPort; //开始端口
int iToPort; //结束端口
int iNowPort; //正在扫描的端口
char* cHost; //要扫描的主机
SOCKET s; //保存创建socket时的返回值
int iOpenPort; //开放端口个数
iOpenPort = 0;
//如果命令行下参数不是4个(包括portscan.exe本身),提示正确的用法
if(argc != 4)
{
// Help(); //给出帮助
return -1;
}
//保存用户输入的要扫描的起始端口和结束端口
//由于用户输入的是char型,所以要先转成int型
iFromPort = atoi(argv[2]);
iToPort = atoi(argv[3]);
cHost = argv[1];
//对用户输入的端口进行判断
if(iFromPort > iToPort || iFromPort < 0 || iFromPort >65535 || iToPort <0 || iToPort >65535)
{
printf(“起始端口不能大于结束端口,且范围为:1-65535!\n“);
return 0;
}
if (WSAStartup(wVersion &wsaData))
{
printf(“初始化失败!“);
return -1;
}
printf(“======= 开始扫描 =======\n“);
//循环连结端口,以判断端口是否开放
for(iNowPort = iFromPort; iNowPort <= iToPort; iNowPort++)
{
s = socket(AF_INETSOCK_STREAM0);
if(s == INVALID_SOCKET)
{
printf(“创建socket()失败!\n“);
WSACleanup();
}
//给结构成员赋值
sin.sin_family = AF_INET;
sin.sin_port = htons(iNowPort);
sin.sin_addr.S_un.S_addr = inet_addr(cHost);
//建立连结
if(connect(s(struct sockaddr*)&sinsizeof(sin)) == SOCKET_ERROR)
{
printf(“%s -> %d:未开放\n“cHostiNowPort);
closesocket(s);
}
else
{
printf(“%s -> %d:开放\n“cHostiNowPort);
iOpenPort ++;
closesocket(s);
}
}
printf(“======= 扫描结果 =======\n“);
printf(“主机:%s 扫描到%d个端口开放“cHostiOpenPort);
//关闭socket
closesocket(s);
WSACleanup();
return 0;
}
/*
//以下为帮助函数内容
void Help()
{
printf(“\nPortScan V1.0 by:∮明天去要饭\n“);
printf(“Usage:\n“);
printf(“ PortScan.exe \n“);
printf(“Example:\n“);
printf(“ PortScan.exe 127.0.0.1 135 445\n“);
}
*/
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2012-06-04 10:54 端口扫描\
文件 2250 2011-05-29 16:42 端口扫描\port_scan.cpp
文件 3437 2011-05-29 16:37 端口扫描\port_scan.dsp
文件 543 2011-05-29 16:42 端口扫描\port_scan.dsw
文件 33792 2011-05-29 16:42 端口扫描\port_scan.ncb
文件 48640 2011-05-29 16:42 端口扫描\port_scan.opt
文件 769 2011-05-29 16:42 端口扫描\port_scan.plg
文件 2468 2011-05-29 16:50 端口扫描\port_scan2.cpp
文件 3449 2011-05-29 16:50 端口扫描\port_scan2.dsp
文件 545 2011-05-29 16:50 端口扫描\port_scan2.dsw
文件 41984 2011-05-29 16:50 端口扫描\port_scan2.ncb
文件 48640 2011-05-29 16:50 端口扫描\port_scan2.opt
文件 838 2011-05-29 16:50 端口扫描\port_scan2.plg
文件 1295 2011-05-29 17:02 端口扫描\port_scan3.cpp
文件 3449 2011-05-29 16:59 端口扫描\port_scan3.dsp
文件 545 2011-05-29 17:22 端口扫描\port_scan3.dsw
文件 41984 2011-05-29 17:22 端口扫描\port_scan3.ncb
文件 48640 2011-05-29 17:22 端口扫描\port_scan3.opt
文件 842 2011-05-29 17:02 端口扫描\port_scan3.plg
- 上一篇:C++控制播放/插入PPT等操作
- 下一篇:C++ 带接口类动态链接库开发
相关资源
- 操作系统c语言模拟文件管理系统844
- C语言开发实战宝典
- C++中头文件与源文件的作用详解
- C语言代码高亮html输出工具
- 猜数字游戏 c语言代码
- C语言课程设计
- 数字电位器C语言程序
- CCS FFT c语言算法
- 使用C语言编写的病房管理系统
- 通信过程中的RS编译码程序(c语言)
- 计算机二级C语言上机填空,改错,编
- 用回溯法解决八皇后问题C语言实现
- 简易教务管理系统c语言开发文档
- 操作系统课设 读写者问题 c语言实现
- 小波变换算法 c语言版
- C流程图生成器,用C语言代码 生成C语
- 3des加密算法C语言实现
- 简单的C语言点对点聊天程序
- 单片机c语言源程序(51定时器 八个按
- 个人日常财务管理系统(C语言)
- c语言电子商务系统
- 小甲鱼C语言课件 源代码
- 将图片转换为C语言数组的程序
- C语言实现的一个内存泄漏检测程序
- DES加密算法C语言实现
- LINUX下命令行界面的C语言细胞游戏
- 用单片机控制蜂鸣器播放旋律程序(
- 学校超市选址问题(数据结构C语言版
- 电子时钟 有C语言程序,PROTEUS仿真图
- 尚观培训linux许巍老师关于c语言的课
评论
共有 条评论