资源简介
用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
- 上一篇:画直角坐标系
- 下一篇:数据结构课程设计《活期储蓄帐目管理》c语言实现
相关资源
- 数据结构课程设计《活期储蓄帐目管
- VegaPrime_MFC
- 门禁系统代码(C语言版).
- 实现最近点对问题源的代码(C语言)
- 矩形切割,用的是递归算法。
- 进程调度的设计与实现代码C++
- emgucv&opencv图像处理函数说明
- [纯C语言 + Win32 API]一步一步写个围棋
- window平台下c++ 对zip压缩解压缩工程源
- 编译原理正则表达式转NFA转DFA DFA最小
- 板材切割c源码
- MFC打开和保存图片
- FileTool.dll
- 人工智能旅行商问题实验报告及C++源
- VC++ 基于IE内核功能很齐全的浏览器(
- MFC实现简单的COM
- c++实现最简单的COM
- (转)VC老版主薄荷用VC++6.0写的TCP
- C++ 矩阵乘并行算法实现
- 共轭梯度法C语言程序
- C语言编写公交查询系统
- AES多种加密解密方式C语言方式实现
- c++ 贪食蛇控制台游戏代码,不闪屏功
- C++实现音频录音wav格式
- 基于单片机的银行排队叫号系统的设
- C语言实现的小球碰撞程序
- 唯一可译码判决准则 1使用的编程:
- MSP430实现温度检测源代码//基于c语言
- Quicksum(C语言)
- 5.1归并递归排序.cpp
评论
共有 条评论