Computer >> Máy Tính >  >> Lập trình >> C ++

Xác thực địa chỉ IP trong C ++

Bài viết này phục vụ mục đích xác thực địa chỉ IP (giao thức internet) chính xác bằng cách lập trình mã C ++. Địa chỉ IP là ký hiệu dấu chấm-thập phân 32 bit, được chia thành bốn phân đoạn số thập phân từ 0 đến 255. Hơn nữa, các số này được phân tách bằng dấu chấm liên tiếp. Địa chỉ IP phục vụ mục đích xác định máy chủ trong mạng theo cách duy nhất để thiết lập kết nối giữa chúng.

Vì vậy, để xác thực đầu vào địa chỉ IP chính xác từ đầu người dùng, thuật toán sau sẽ tóm tắt cách thức chính xác chuỗi mã được thực hiện để xác định địa chỉ IP chính xác như sau;

Thuật toán

START
   Step-1: Input the IP address
   Step-2: Spilt the IP into four segments and store in an array
   Step-3: Check whether it numeric or not using
   Step-4: Traverse the array list using foreach loop
   Step-5: Check its range (below 256) and data format
   Step-6: Call the validate method in the Main()
END

Do đó, theo thuật toán, c ++ sau đây được soạn thảo để xác thực địa chỉ IP, trong đó một số hàm cơ bản đang được sử dụng để xác định dạng số, phạm vi và tách dữ liệu đầu vào tương ứng;

Ví dụ

#include <iostream>
#include <vector>
#include <string>
using namespace std;
// check if the given string is a numeric string or not
bool chkNumber(const string& str){
   return !str.empty() &&
   (str.find_first_not_of("[0123456789]") == std::string::npos);
}
// Function to split string str using given delimiter
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;
}
// Function to validate an IP address
bool validateIP(string ip){
   // split the string into tokens
   vector<string> slist = split(ip, '.');
   // if token size is not equal to four
   if (slist.size() != 4)
      return false;
   for (string str : slist){
      // check that string is number, positive, and range
      if (!chkNumber(str) || stoi(str) < 0 || stoi(str) > 255)
         return false;
   }
   return true;
}
   // Validate an IP address in C++
int main(){
   cout<<"Enter the IP Address::";
   string ip;
   cin>>ip;
   if (validateIP(ip))
      cout <<endl<< "***It is a Valid IP Address***";
   else
      cout <<endl<< "***Invalid IP Address***";
   return 0;
}

Sau khi biên dịch mã trên bằng trình chỉnh sửa c ++ tiêu chuẩn, kết quả sau sẽ được tạo ra để kiểm tra chính xác xem số đầu vào 10.10.10.2 có phải là địa chỉ IP chính xác hay không, như sau;

Đầu ra

Enter the IP Address:: 10.10.10.2
***It is a Valid IP Assress***