资源简介

2016年5月8日cplusplus.com全站离线版压缩包,解压后200M左右,可无网、内网环境下访问查阅STL等

资源截图

代码片段和文件信息

// Subnet Calculator by rocco castoro

#include “stdafx.h“
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;



int getOctetsIP(string ip vector &octetsIP) { // Define vector octets using reference from main
stringstream sip(ip); // use stringstream named ss and populate with ip
string temp;
octetsIP.clear(); // Clears the octetsMask vector in case main function re-runs this function
vector ipInRange;
while (getline(siptemp‘.‘)) // Every time getline recieves new stream element from ss save to temp
octetsIP.push_back(atoi(temp.c_str())); //... until reaches ‘.‘ delimiter then push_back octet with new element.
if (octetsIP.size() == 4) {
for(int i = 0; i < octetsIP.size(); i++){
if (octetsIP[i] >= 0 && octetsIP[i] <= 255)
ipInRange.push_back(true);
else
ipInRange.push_back(false);
}
if (ipInRange[0]==true&&ipInRange[1]==true&&ipInRange[2]==true&&ipInRange[3]==true){
return 0;
}else{
cout << endl << “There are only 255 bits per octet. Please re-enter IP.“ << endl << endl;
return 1;
}
}else{
cout << endl << “Please enter four octets in dot notation.“ << endl << endl;
return 1;
}
}




int getOctetsMask(string mask  vector &octetsMask) {
stringstream smask(mask);
string temp;
octetsMask.clear(); // Clears the octetsMask vector in case main function re-runs this function
vector maskInRange;
while (getline(smasktemp‘.‘))
octetsMask.push_back(atoi(temp.c_str()));
if (octetsMask.size() == 4){
for(int i = 0; i < octetsMask.size(); i++){
if (octetsMask[i] == 0 || octetsMask[i] == 128 || octetsMask[i] == 192 || octetsMask[i] == 224 || octetsMask[i] == 240 || octetsMask[i] == 248 || octetsMask[i] == 252 || octetsMask[i] == 254 || octetsMask[i] == 255)
maskInRange.push_back(true);
else
maskInRange.push_back(false);
}
if(maskInRange[0]==true&&maskInRange[1]==true&&maskInRange[2]==true&&maskInRange[3]==true){
return 0;
}else{
cout << endl << “Subnet masks only use 2^[0-7]. Please re-enter mask.“ << endl << endl;
return 1;
}
}else{
cout << endl << “Please enter four octets in dot notation.“ << endl << endl;
return 1;
}
}




int calcClass(vector &octetsIP) {
if (octetsIP[0] == 10) {
return 1; // Class A Private address blocks //
}else if (octetsIP[0] == 172 && octetsIP[1] >= 16 && octetsIP[1] <= 31) {
return 2; // Class B Private address blocks //
}else if (octetsIP[0] == 192 && octetsIP[1] == 168) {
return 3; // Class C Private address blocks //
}else if (octetsIP[0] == 127) {
return 4; // Loopback Address Reserved address blocks //
}else if (octetsIP[0] >= 0 && octetsIP[0] < 127) {
return 5;
}else if (octetsIP[0] > 127 && octetsIP[0] < 192) {
return 6;
}else if (octetsIP[0] > 191 && octetsIP[0] < 224) {
return 7;

评论

共有 条评论