इस प्रोग्राम में हम देखेंगे कि 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)) { // यदि कैरेक्टर संख्या नहीं है, तो false लौटाएं
return 0;
}
str++; // अगले कैरेक्टर पर जाएं
}
return 1;
}
int validate_ip(char *ip) { // चेक करें कि IP वैध है या नहीं
int i, num, dots = 0;
char *ptr;
if (ip == NULL)
return 0;
ptr = strtok(ip, "."); // डॉट डिलीमीटर का उपयोग करके स्ट्रिंग काटें
if (ptr == NULL)
return 0;
while (ptr) {
if (!validate_number(ptr)) // चेक करें कि सबस्ट्रिंग केवल संख्या रखती है या नहीं
return 0;
num = atoi(ptr); // सबस्ट्रिंग को संख्या में बदलें
if (num >= 0 && num <= 255) {
ptr = strtok(NULL, "."); // स्ट्रिंग का अगला भाग काटें
if (ptr != NULL)
dots++; // डॉट काउंट बढ़ाएं
} else
return 0;
}
if (dots != 3) // यदि डॉट्स की संख्या 3 नहीं है, तो 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\n") : printf("Not valid\n");
validate_ip(ip2) ? printf("Valid\n") : printf("Not valid\n");
validate_ip(ip3) ? printf("Valid\n") : printf("Not valid\n");
validate_ip(ip4) ? printf("Valid\n") : printf("Not valid\n");
}
आउटपुट
Valid Valid Not valid Not valid