• 大小: 294KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-07
  • 语言: C/C++
  • 标签: 局域网IP  ping  

资源简介

C++获取所有局域网可用IP,使用PING的方式简单易懂,但缺点就是时间消耗比较多,给新手看的,大神请无视 vs2010编译

资源截图

代码片段和文件信息

// C++ping.cpp : 定义控制台应用程序的入口点。
//

#include “stdafx.h“

string inttostring(int n)
{
std::stringstream strRet;
strRet << n;
return strRet.str();
}

bool isIP(const char* str)
{
int i(0);
size_t len = strlen(str);
while (len > 0)
{
if ( *str < ‘0‘ || *str>‘9‘)
{
if (*str !=‘.‘)
return false;
i ++;
}
str++;
len--;
}
if (i == 3)
return true;
return false;
}

//  [9/22/2014 gin]
int pingit(string strStartIPstring strEndIP)
{
try
{

int pos1 = strStartIP.find_last_of(“.“) + 1;
string str1 = strStartIP.substr(pos1);
string strIP1 =  strStartIP.substr(0pos1);
int pos2 = strEndIP.find_last_of(“.“) + 1;
string str2 = strEndIP.substr(pos2);
string strIP2 =  strEndIP.substr(0pos2);
if (strIP1 != strIP2)
{
cout << “错误:输入IP不在同一段“ << endl;
return 0;
}
int count = 0;
int s1 = atoi(str1.c_str());
int s2 = atoi(str2.c_str());
cout << “正在ping所有指定IP地址,这也许会持续较长时间,请耐心等候……“ << endl;
vector vecIP;
for (int i = s1;i < s2 ; i++)
{
string ip = strIP1 + inttostring(i);
string conv = “ping “ + ip;
conv += “ -n 1“;
int q = system(conv.c_str());
if (q == 0)
{
count ++;
vecIP.push_back(ip);
}
}
cout << “可用IP列表:“ << endl;
for (int i = 0; i < vecIP.size(); i++)
{
cout << vecIP[i] << endl;
}
return count;
}
catch (...)
{
return 0;
}
}


int _tmain(int argc _TCHAR* argv[])
{
//  char *s = new char[16];
string s1s2;
while(1)
{
cout<< “请输入需要ping的IP段:“< cout<< “(格式:x.x.x.x且起始IP与结束IP前三位必须相同)“< cout<< “起始IP:“ ;
cin >> s1;
cout<< “结束IP:“ ;
cin >> s2;
if (!isIP(s1.c_str()) || !isIP(s2.c_str()))
{
cout << “错误:IP格式有误“ << endl;
}
else
break;
}
cout << “共“ << pingit(s1s2) << “个可用IP“ << endl;
system(“pause“);
return 0;
}


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1958  2014-09-22 16:50  C++ping\C++ping\C++ping.cpp

     文件       4364  2014-09-22 15:47  C++ping\C++ping\C++ping.vcxproj

     文件       1311  2014-09-22 15:47  C++ping\C++ping\C++ping.vcxproj.filters

     文件        143  2014-09-22 15:47  C++ping\C++ping\C++ping.vcxproj.user

     文件       1553  2014-09-22 15:47  C++ping\C++ping\ReadMe.txt

     文件        212  2014-09-22 15:47  C++ping\C++ping\stdafx.cpp

     文件        330  2014-09-22 16:35  C++ping\C++ping\stdafx.h

     文件        236  2014-09-22 15:47  C++ping\C++ping\targetver.h

     文件        888  2014-09-22 15:47  C++ping\C++ping.sln

    ..A..H.     14848  2014-09-22 16:51  C++ping\C++ping.suo

     文件     101888  2014-09-22 16:50  C++ping\Debug\C++ping.exe

     文件     683168  2014-09-22 16:50  C++ping\Debug\C++ping.ilk

     文件    1133568  2014-09-22 16:50  C++ping\Debug\C++ping.pdb

     目录          0  2014-09-22 16:52  C++ping\C++ping

     目录          0  2014-09-22 16:42  C++ping\Debug

     目录          0  2014-09-22 16:52  C++ping

----------- ---------  ---------- -----  ----

              1944467                    16


评论

共有 条评论