C ++中验证IP地址

本文的目的是通过c++代码编程验证正确的IP (internet

protocol)地址。IP地址是一个32位的点-小数表示法,分为从0到255的四个十进制数字段。此外,这些数字由点分隔连续。IP地址的作用是在网络中以独特的方式识别主机,以便在它们之间建立连接。

因此,为了验证从用户端输入的正确IP地址,以下算法简要介绍了如何具体实现代码序列以标识正确的IP地址;

Algorithm(算法)

START

   Step-1: 输入IP地址

   Step-2: 将IP分割成四个段并存储在一个数组中

   Step-3: 检查是否为数字

   Step-4: 使用foreach循环遍历数组列表

   Step-5: 检查其范围(小于256)和数据格式

   Step-6: 调用Main()中的validate方法

END

因此,根据算法,以下c ++拟定了用于验证IP地址的方法,其中使用了几个基本函数分别确定数字形式,范围和分割输入数据;

示例

#include <iostream>

#include <vector>

#include <string>

using namespace std;

// 检查给定的字符串是否是数字字符串

bool chkNumber(const string& str){

   return !str.empty() &&

   (str.find_first_not_of("[0123456789]") == std::string::npos);

}

// 函数使用给定的分隔符拆分字符串str

vector<string> split(const string& str, char delim){

   auto i = 0;

   vector<string> list;

   auto pos = str.find(delim);

   while (pos != string::npos){

      list.push_back(str.substr(i, pos - i));

      i = ++pos;

      pos = str.find(delim, pos);

   }

   list.push_back(str.substr(i, str.length()));

   return list;

}

//函数验证IP地址

bool validateIP(string ip){

   //字符串拆分为标记

   vector<string> slist = split(ip, '.');

   if (slist.size() != 4)

      return false;

   for (string str : slist){

      //检查字符串是否为数字,正数和范围

      if (!chkNumber(str) || stoi(str) < 0 || stoi(str) > 255)

         return false;

   }

   return true;

}

   //在C ++中验证IP地址

int main(){

   cout<<"输入IP地址::";

   string ip;

   cin>>ip;

   if (validateIP(ip))

      cout <<endl<< "***它是一个有效的IP地址***";

   else

      cout <<endl<< "***IP地址无效***";

   return 0;

}

在使用标准c++编辑器编译上述代码后,我们会作出以下输出,以检查输入数字10.10.10.2是否正确的IP地址

输出结果

输入IP地址:: 10.10.10.2

***它是一个有效的IP地址***

以上是 C ++中验证IP地址 的全部内容, 来源链接: utcz.com/z/353532.html

回到顶部