কম্পিউটার টিউটোরিয়াল

সি প্রোগ্রাম: IP অ্যাড্রেস ভ্যালিডেট (Validate) করা


এই প্রোগ্রামে আমরা দেখব কিভাবে সি-তে একটি IP অ্যাড্রেস ভ্যালিডেট করা যায়। IPv4 অ্যাড্রেসগুলো ডট-ডেসিমেল নোটেশনে রিপ্রেজেন্ট করা হয়। এখানে চারটি ডেসিমেল নম্বর থাকে (সব ০ থেকে ২৫৫ পর্যন্ত)। এই চারটি নম্বর তিনটি ডট দ্বারা আলাদা করা থাকে।

একটি বৈধ IP-এর উদাহরণ: 192.168.4.1

IP অ্যাড্রেস ভ্যালিডেট করতে আমাদের এই ধাপগুলো অনুসরণ করতে হবে:

  • স্ট্রিং (IP অ্যাড্রেস) টোকেনাইজ করুন ডট . ডিলিমিটার ব্যবহার করে
  • যদি সাব-স্ট্রিংগুলিতে কোনো নন-নিউমেরিক ক্যারেক্টার থাকে, তবে false রিটার্ন করুন
  • যদি প্রতিটি টোকেনের নম্বর ০ থেকে ২৫৫ রেঞ্জে না থাকে, তবে 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) // যদি ডটের সংখ্যা ৩ না হয়, 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
  1. জাভাস্ক্রিপ্টে URL অ্যাড্রেস যাচাই করার উপায়

  2. জাভাস্ক্রিপ্টে ইমেইল অ্যাড্রেস কীভাবে ভ্যালিডেট করবেন?

  3. জাভাস্ক্রিপ্টে ক্লায়েন্টের IP ঠিকানা বের করা

  4. C প্রোগ্রাম: পয়েন্টারের উদাহরণ প্রদর্শন