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

资源简介

用C语言编写扫描局域网内主机的程序。要求可以显示局域网内的主机名列表,IP地址列表,并可以显示哪些主机开放了哪些端口

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;
#pragma comment (lib“ws2_32.lib“)
 
typedef struct
{
 char ip[20];
 int  port;

 bool flag;
}infor;
int Lastip; 
int nowport;
int startPort;
int endPort;
int threadnum = 0; //线程计数
DWORD WINAPI pScan(LPVOID lp);
void scanip (int ip1 int ip2 int ip3 int ip4);//端口扫描函数
ofstream SaveFile (“result.txt“); //设置输出文件
 

int check(char startip[]){
int count =0;
for(int i = 0;startip[i]!=‘\0‘;i++)
{
if (startip[i] ==‘.‘)
{
count++;
if(startip[i+1] ==‘.‘)
{
cout<<“输入的ip地址有误,重新输入\n“;
return 1;
}
}
else if(!(startip[i]<=‘9‘&&startip[i]>=‘0‘))
{
cout<<“输入的ip地址有误,重新输入\n“;
return 1;
}
}
if(count!=3)
{
cout<<“输入的ip地址有误,重新输入\n“;
return 1;
}
return 0;
}

int main () 

bool inFlag =true;
char startip[20]=“172.19.160.60“; //起始IP
char endip[20];//=“172.19.160.80“;   //中止IP

//将ip转化为4段整数
int ip1 ip1end ip2 ip2end ip3 ip3end ip4 ip4end;
while(inFlag){

cout << “请输入起始IP:“ << “172.19.160.60“<
//cin >> startip;
if(check(startip))continue;

cout << “请输入终止IP:“; //<<“172.19.160.80“<< endl;

cin >> endip;
if(check(endip))continue;
cout << “请输入起始端口:“ <<“0“<< endl;
//cin >> startPort;
startPort=0;
cout << “请输入终止端口:“ <<“255“<< endl;
//cin >> endPort;
endPort=255;


//将startip转化为4段整数
ip1 = atoi (strtok (startip “.“));
ip2 = atoi (strtok (NULL “.“));
ip3 = atoi (strtok (NULL “.“));
ip4 = atoi (strtok (NULL “.“));
//将endip转化为4段整数
ip1end = atoi (strtok (endip “.“));
ip2end = atoi (strtok (NULL “.“));
ip3end = atoi (strtok (NULL “.“));
ip4end = atoi (strtok (NULL “.“));

//检测ip合法性
if((ip1<=0 ||ip1>=255)||(ip2<=0 ||ip2>=255)||(ip3<=0 ||ip3>=255)||(ip4<=0 ||ip4>=255)||
    (ip1end<=0 ||ip1end>=255)||(ip2end<=0 ||ip2end>=255)||(ip3end<=0 ||ip3end>=255)||(ip4end<=0 ||ip4end>=255))
 {
cout<<“输入的ip地址有误,重新输入\n“;

  }
else 
inFlag=false;
}
 
//从startip到endip开始扫描
while (ip1 < ip1end)
{
while (ip2 <= 255)
  {
while (ip3 <= 255)
  {
while (ip4 <= 255)
  {
scanip (ip1 ip2 ip3 ip4);
ip4++;
  }
ip3++;
ip4 = 0;
  }
ip2++;
ip3 = 0;
  }
ip1++;
ip2 = 0;
}
 
while (ip2 < ip2end)
{
while (ip3 <= 255)
{
while (i

评论

共有 条评论