1. 背景
在一个局域网内,IP使用数量有限,所以随着联网的设备数越来越多,出现IP冲突的问题越来越频繁。所以做了一个空闲IP检测小工具,在给新增设备设置IP之前,可以检测局域网内空闲的IP来使用,由此可减少冲突发生。
2. 原理
在执行ping时,如果返回的结果值为 1,则表明没有ping平通,IP空闲;如果返回的值不为 1,则认为ping通,IP已经在被使用(不包含特殊情况)。
3. 实现
提示:以下为示例代码,最后下载链接里有完整代码(笔者所用开发环境为 vs2008)和Windows下可直接运行的 exe
3.1 输入需要检测的IP段
解析出IP段的范围,并对输入的IP段格式进行检测。当输入IP段符合规则时,进行循环ping操作。
//定义标号L1,用于goto跳转
L1: cout<<“开始IP >>”;
string startIp;
cin>>startIp;
int pos=startIp.find_last_of(".");
string inputIp=startIp.substr(0,pos+1);
startIp=startIp.substr(pos+1);
cout<<“结束IP >>”;
string endIp;
cin>>e