判断给出的字符串是IPV4还是IPV6的C++源代……

B站影视 日本电影 2025-03-19 13:02 1

摘要:* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可

判断给出的字符串是IPV4还是IPV6的C++源代码

#include
#include
#include
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* 验证IP地址
* @param IP string字符串 一个IP地址字符串
* @return string字符串
*/
vectorsplit(string s, string spliter)
{
vectorres;
int i;
while ((i=s.find(spliter))&& i != s.npos)
{
res.push_back(s.substr(0,i));
s = s.substr(i+1);
}
res.push_back(s);
return res;
}
bool isIPV4(string IP)
{
vectorres = split(IP, ".");
if (res.size == 0)
{
return false;
}
for (int i = 0; i {
if (res .size 3)
{
return false;
}
if (res == '0'&& res .size!=1)
{
return false;
}
for (int j = 0; j {
if (!isdigit(res ))
{
return false;
}
}
int num = stoi(res );
if (num 255)
{
return false;
}
}
return true;
}
bool isIPV6(string IP)
{
vectorres = split(IP, ":");
if (res.size == 0)
{
return false;
}
for (int i = 0; i {
if ( res .size == 0 || res .size > 4)
{
return false;
}
for (int j = 0; j {
if(!(isdigit(res )||(res >= 'a'&&res = 'A'&&res {
return false;
}
}
}
return true;
}
string solve(string IP) {
// write code here
if (IP.size == 0)
{
return "Neither";
}
if (isIPV4(IP))
{
return "IPv4";
}
if(isIPV6(IP))
{
return "IPv6";
}
return "Neither";
}
};

来源:小璇科技观

相关推荐