请用c++实现输入IP地址和子网掩码信息实现IP地址的输出
时间: 2024-05-13 15:19:46 浏览: 85
ip地址合法性检测和子网匹配
4星 · 用户满意度95%
以下是一个示例代码,可供参考:
```c++
#include <iostream>
#include <string>
#include <vector>
#include <sstream>
using namespace std;
// 将IP地址字符串转换为整数
int ipToInt(string ip) {
vector<int> nums;
stringstream ss(ip);
string num;
while (getline(ss, num, '.')) {
nums.push_back(stoi(num));
}
return (nums[0] << 24) + (nums[1] << 16) + (nums[2] << 8) + nums[3];
}
// 将整数转换为IP地址字符串
string intToIp(int num) {
stringstream ss;
ss << ((num >> 24) & 0xFF) << "." << ((num >> 16) & 0xFF) << "." << ((num >> 8) & 0xFF) << "." << (num & 0xFF);
return ss.str();
}
// 计算子网掩码的长度
int getMaskLen(int mask) {
int len = 0;
while (mask) {
len++;
mask <<= 1;
}
return len;
}
// 输入IP地址和子网掩码,输出IP地址
int main() {
string ipStr, maskStr;
cout << "请输入IP地址和子网掩码,用空格分隔:";
cin >> ipStr >> maskStr;
int ip = ipToInt(ipStr);
int mask = ipToInt(maskStr);
int maskLen = getMaskLen(mask);
cout << "IP地址: " << intToIp(ip) << endl;
cout << "子网掩码: " << intToIp(mask) << "/" << maskLen << endl;
return 0;
}
```
输入示例:
```
请输入IP地址和子网掩码,用空格分隔:192.168.1.100 255.255.255.0
```
输出示例:
```
IP地址: 192.168.1.100
子网掩码: 255.255.255.0/24
```
阅读全文