C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++でIPアドレスを検証する


この記事は、C ++コードプログラミングによって正しいIP(インターネットプロトコル)アドレスを検証することを目的としています。 IPアドレスは32ビットのドット10進表記で、0から255までの4つの10進数セグメントに分割されます。さらに、これらの数値はドットで連続して区切られます。 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

そのため、アルゴリズムに従って、IPアドレスを検証するために、次のc ++が作成されました。ここでは、入力データの数値形式、範囲、および分割をそれぞれ決定するために、いくつかの重要な関数が使用されています。

#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***

  1. C ++で文字列をトークン化しますか?

    最初の方法は、文字列ストリームを使用して、スペースで区切られた単語を読み取ることです。これは少し制限されていますが、適切なチェックを提供すれば、タスクはかなりうまくいきます。 例 #include <vector> #include <string> #include <sstream> using namespace std; int main() {    string str("Hello from the dark side");    string tmp; // A string

  2. C#でIPアドレスを検証する

    IPアドレスは、コンピュータネットワーク上の各デバイスに割り当てられた一連の番号であるインターネットプロトコルアドレスです。 C#では、名前空間System.NetのクラスIPAddressクラスがIPアドレスを処理します。 IPアドレスの検証に使用されるプログラムは次のとおりです- 例 using System; using System.Net; using System.Net.Sockets; using System.Text.RegularExpressions; namespace IPaddressDemo {    class Example { &nb