資源簡介
用C語言編寫掃描局域網(wǎng)內(nèi)主機(jī)的程序。要求可以顯示局域網(wǎng)內(nèi)的主機(jī)名列表,IP地址列表,并可以顯示哪些主機(jī)開放了哪些端口
代碼片段和文件信息
#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;?//線程計(jì)數(shù)
DWORD?WINAPI?pScan(LPVOID?lp);
void?scanip?(int?ip1?int?ip2?int?ip3?int?ip4);//端口掃描函數(shù)
ofstream?SaveFile?(“result.txt“);?//設(shè)置輸出文件
?
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轉(zhuǎn)化為4段整數(shù)
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“<
cin?>>?endip;
if(check(endip))continue;
cout?<“請輸入起始端口:“?<<“0“< //cin?>>?startPort;
startPort=0;
cout?<“請輸入終止端口:“?<<“255“< //cin?>>?endPort;
endPort=255;
//將startip轉(zhuǎn)化為4段整數(shù)
ip1?=?atoi?(strtok?(startip?“.“));
ip2?=?atoi?(strtok?(NULL?“.“));
ip3?=?atoi?(strtok?(NULL?“.“));
ip4?=?atoi?(strtok?(NULL?“.“));
//將endip轉(zhuǎn)化為4段整數(shù)
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? {
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? {
while?(ip3?<=?255)
{
while?(i
評(píng)論
共有 條評(píng)論