บทความนี้มีจุดประสงค์ในการตรวจสอบที่อยู่ IP (โปรโตคอลอินเทอร์เน็ต) ที่ถูกต้องโดยอาศัยการเขียนโปรแกรมโค้ด C++ ที่อยู่ IP เป็นสัญกรณ์จุดทศนิยมแบบ 32 บิต แบ่งออกเป็นส่วนตัวเลขทศนิยมสี่ส่วนตั้งแต่ 0 ถึง 255 นอกจากนี้ ตัวเลขเหล่านี้จะถูกคั่นด้วยจุดต่อเนื่องกัน ที่อยู่ IP มีจุดประสงค์เพื่อระบุเครื่องโฮสต์ในเครือข่ายในลักษณะเฉพาะเพื่อสร้างการเชื่อมต่อระหว่างกัน
ดังนั้น เพื่อตรวจสอบความถูกต้องของอินพุตที่อยู่ IP ที่ถูกต้องจากปลายผู้ใช้ อัลกอริธึมต่อไปนี้จะสรุปว่าลำดับรหัสนั้นถูกสร้างขึ้นมาเพื่อระบุที่อยู่ IP ที่ถูกต้องได้อย่างไร
อัลกอริทึม
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
ดังนั้น ตามอัลกอริธึม c++ ต่อไปนี้จึงถูกร่างขึ้นเพื่อตรวจสอบที่อยู่ IP ซึ่งมีการใช้ฟังก์ชันที่จำเป็นสองสามอย่างเพื่อกำหนดรูปแบบตัวเลข ช่วง และการแยกข้อมูลอินพุตตามลำดับ
ตัวอย่าง
#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; }
หลังจากการคอมไพล์โค้ดด้านบนโดยใช้ตัวแก้ไข c++ มาตรฐาน เอาต์พุตต่อไปนี้กำลังถูกสร้างขึ้นซึ่งกำลังตรวจสอบอย่างถูกต้องว่าอินพุตหมายเลข 10.10.10.2 เป็นที่อยู่ IP ที่ถูกต้องหรือไม่ดังนี้
ผลลัพธ์
Enter the IP Address:: 10.10.10.2 ***It is a Valid IP Assress***