首頁 > 後端開發 > C++ > 主體

C程式驗證IP位址的程式碼

WBOY
發布: 2023-09-04 21:13:10
轉載
1387 人瀏覽過

C程式驗證IP位址的程式碼

在這個程式中,我們將看到如何使用C語言驗證IP位址。 IPv4位址以點十進位表示法表示。有四個十進制數(都在0到255之間)。這四個數字由三個點分隔。

一個有效的IP範例是:192.168.4.1

要驗證IP位址,我們應該按照以下步驟進行:

  • ##使用點「. 」作為分隔符號對字串(IP位址)進行標記化

  • 如果子字串包含任何非數字字符,則傳回false

  • 如果每個標記中的數字不在0到255的範圍內,則傳回false

  • 如果有三個點和四個部分,則它是一個有效的IP位址

範例程式碼

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int validate_number(char *str) {
   while (*str) {
      if(!isdigit(*str)){ //if the character is not a number, return
         false
         return 0;
      }
      str++; //point to next character
   }
   return 1;
}
int validate_ip(char *ip) { //check whether the IP is valid or not
   int i, num, dots = 0;
   char *ptr;
   if (ip == NULL)
      return 0;
      ptr = strtok(ip, "."); //cut the string using dor delimiter
      if (ptr == NULL)
         return 0;
   while (ptr) {
      if (!validate_number(ptr)) //check whether the sub string is
         holding only number or not
         return 0;
         num = atoi(ptr); //convert substring to number
         if (num >= 0 && num <= 255) {
            ptr = strtok(NULL, "."); //cut the next part of the string
            if (ptr != NULL)
               dots++; //increase the dot count
         } else
            return 0;
    }
    if (dots != 3) //if the number of dots are not 3, return false
       return 0;
      return 1;
}
int main() {
   char ip1[] = "192.168.4.1";
   char ip2[] = "172.16.253.1";
   char ip3[] = "192.800.100.1";
   char ip4[] = "125.512.100.abc";
   validate_ip(ip1)? printf("Valid</p><p>"): printf("Not valid</p><p>");
   validate_ip(ip2)? printf("Valid</p><p>"): printf("Not valid</p><p>");
   validate_ip(ip3)? printf("Valid</p><p>"): printf("Not valid</p><p>");
   validate_ip(ip4)? printf("Valid</p><p>"): printf("Not valid</p><p>");
}
登入後複製

輸出

Valid
Valid
Not valid
Not valid
登入後複製

以上是C程式驗證IP位址的程式碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板