Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

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

Địa chỉ IP (IPv4) là 4 số 0-255 cách nhau bởi dấu chấm. Kiểm tra: tách chuỗi theo '.', phải có đúng 4 đoạn, mỗi đoạn chỉ chứa chữ số, giá trị 0-255.

Thuật toán

START
  B1: Nhập địa chỉ IP
  B2: Tách thành 4 đoạn bằng dấu '.'
  B3: Kiểm tra mỗi đoạn: chỉ chứa số, giá trị 0-255
  B4: Nếu tất cả hợp lệ → Valid IP
  B5: Ngược lại → Invalid IP
END

Ví dụ

#include <iostream>
#include <vector>
#include <string>
using namespace std;

bool chkNumber(const string& str) {
    return !str.empty() && (str.find_first_not_of("0123456789") == string::npos);
}

vector<string> split(const string& str, char delim) {
    vector<string> list;
    size_t i = 0, 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));
    return list;
}

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;
}

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;
}

Kết quả

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