• 大小: 18KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-08
  • 语言: C/C++
  • 标签: 端口扫描  c语言  

资源简介

一个端口就是一个潜在的通信通道,也就是一个入侵通道。本程序用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

评论

共有 条评论