URL এবং IP Address Validation

Regex এর মাধ্যমে Input Validation - জাভা রেজেক্স (Java Regex) - Java Technologies

274

URL এবং IP Address ভ্যালিডেশন একটি সাধারণ এবং গুরুত্বপূর্ণ কাজ যখন আপনি একটি ওয়েব অ্যাপ্লিকেশন বা নেটওয়ার্ক ডিভাইস নিয়ে কাজ করেন। Java তে java.util.regex প্যাকেজের সাহায্যে আপনি সহজে URL এবং IP অ্যাড্রেস ভ্যালিডেশন করতে পারেন। এছাড়া, Java তে কিছু বিল্ট-ইন ক্লাস রয়েছে যেমন URL ক্লাস এবং InetAddress ক্লাস, যা URL এবং IP অ্যাড্রেসের ভ্যালিডেশন ও প্রসেসিংয়ের জন্য ব্যবহৃত হয়।

1. URL Validation in Java:

Java তে URL ভ্যালিডেশন করার জন্য আপনি Regular Expressions (Regex) বা URL ক্লাস ব্যবহার করতে পারেন।

Regex দিয়ে URL Validation:

Regex দিয়ে URL ভ্যালিডেশনের জন্য একটি প্যাটার্ন তৈরি করতে হবে যা URL এর বিভিন্ন অংশ (স্কিম, ডোমেইন, পোর্ট, পাথ ইত্যাদি) চেক করবে।

URL Regex প্যাটার্ন উদাহরণ:

import java.util.regex.*;

public class URLValidation {
    public static void main(String[] args) {
        // Regex pattern for validating URL
        String pattern = "^(https?|ftp)://([a-zA-Z0-9.-]+)(:[0-9]+)?(/[^\\s]*)?$";

        // String to validate
        String url = "https://www.example.com:8080/path";

        // Compile the pattern
        Pattern p = Pattern.compile(pattern);

        // Create a matcher
        Matcher m = p.matcher(url);

        // Check if the URL matches the pattern
        if (m.matches()) {
            System.out.println("Valid URL!");
        } else {
            System.out.println("Invalid URL!");
        }
    }
}

আউটপুট:

Valid URL!

ব্যাখ্যা:

  • Regex pattern: ^(https?|ftp)://([a-zA-Z0-9.-]+)(:[0-9]+)?(/[^\\s]*)?$
    • ^(https?|ftp): URL এর স্কিম (HTTP, HTTPS, FTP) চেক করা হয়।
    • ://: স্কিম এবং ডোমেইন অংশ আলাদা করার জন্য।
    • ([a-zA-Z0-9.-]+): ডোমেইন নামের অংশের জন্য, যেখানে আলফানিউমেরিক ক্যারেক্টার এবং ডট (.) বা ড্যাশ (-) থাকতে পারে।
    • (:[0-9]+)?: পোর্ট নম্বর চেক করা হয়, এটি ঐচ্ছিক।
    • (/[^\\s]*)?$: পাথ অংশ চেক করা হয়।

2. IP Address Validation in Java:

IP অ্যাড্রেসের ভ্যালিডেশন সাধারণত দুটি ধরনের হতে পারে:

  1. IPv4 Address: চারটি দশমিক দ্বারা পৃথক হওয়া ৮-বিটের সংখ্যা (যেমন 192.168.0.1),
  2. IPv6 Address: ৮টি হেক্সাডেসিমেল ব্লক দ্বারা পৃথক করা (যেমন 2001:0db8:85a3:0000:0000:8a2e:0370:7334)

IPv4 Validation:

IPv4 অ্যাড্রেসে মোট ৪টি সংখ্যা থাকে, যেগুলি ০ থেকে ২৫৫ এর মধ্যে থাকে এবং তাদের মধ্যে ডট (.) দিয়ে পৃথক করা হয়।

import java.util.regex.*;

public class IPv4Validation {
    public static void main(String[] args) {
        // Regex pattern for validating IPv4
        String pattern = "^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$";

        // String to validate
        String ip = "192.168.0.1";

        // Compile the pattern
        Pattern p = Pattern.compile(pattern);

        // Create a matcher
        Matcher m = p.matcher(ip);

        // Check if the IP matches the pattern
        if (m.matches()) {
            System.out.println("Valid IPv4 address!");
        } else {
            System.out.println("Invalid IPv4 address!");
        }
    }
}

আউটপুট:

Valid IPv4 address!

ব্যাখ্যা:

  • Regex pattern: ^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
    • প্রতিটি সেগমেন্টে সংখ্যা ০ থেকে ২৫৫ এর মধ্যে থাকতে হবে এবং এটি ডট দ্বারা আলাদা করা হয়।
    • 25[0-5]: ২৫০ থেকে ২৫৫ এর মধ্যে সংখ্যা।
    • 2[0-4][0-9]: ২০০ থেকে ২৪৯ এর মধ্যে সংখ্যা।
    • [01]?[0-9][0-9]?: ০ থেকে ১৯৯ এর মধ্যে সংখ্যা।

IPv6 Validation:

IPv6 অ্যাড্রেসে ৮টি হেক্সাডেসিমেল গ্রুপ থাকে এবং সেগুলি কোলন (:) দ্বারা পৃথক করা হয়। প্রতিটি গ্রুপের মধ্যে ৪টি হেক্সাডেসিমেল অক্ষর থাকতে পারে।

import java.util.regex.*;

public class IPv6Validation {
    public static void main(String[] args) {
        // Regex pattern for validating IPv6
        String pattern = "([0-9a-fA-F]{1,4}:){7}([0-9a-fA-F]{1,4})";

        // String to validate
        String ip = "2001:0db8:85a3:0000:0000:8a2e:0370:7334";

        // Compile the pattern
        Pattern p = Pattern.compile(pattern);

        // Create a matcher
        Matcher m = p.matcher(ip);

        // Check if the IP matches the pattern
        if (m.matches()) {
            System.out.println("Valid IPv6 address!");
        } else {
            System.out.println("Invalid IPv6 address!");
        }
    }
}

আউটপুট:

Valid IPv6 address!

ব্যাখ্যা:

  • Regex pattern: ([0-9a-fA-F]{1,4}:){7}([0-9a-fA-F]{1,4})
    • {1,4} প্রতিটি গ্রুপে ১ থেকে ৪টি হেক্সাডেসিমেল অক্ষর থাকতে হবে।
    • কোলন দ্বারা ৮টি গ্রুপ আলাদা করা হয়েছে।

3. URL Validation Using URL Class:

Java তে URL ভ্যালিডেশন করতে java.net.URL ক্লাস ব্যবহার করা যায়। এই ক্লাসের toURI() মেথডটি একটি URL অবজেক্ট তৈরি করার সময় URL এর বৈধতা যাচাই করে।

import java.net.*;

public class URLValidation {
    public static void main(String[] args) {
        String url = "https://www.example.com";

        try {
            // Create a URL object
            URL u = new URL(url);

            // If the URL is valid, it will not throw an exception
            System.out.println("Valid URL!");
        } catch (MalformedURLException e) {
            System.out.println("Invalid URL!");
        }
    }
}

আউটপুট:

Valid URL!

ব্যাখ্যা:

  • new URL(url) URL তৈরি করার সময় যদি এটি একটি বৈধ URL না হয়, তাহলে MalformedURLException ত্রুটি ঘটবে এবং Invalid URL! মুদ্রিত হবে। অন্যথায় এটি একটি বৈধ URL হিসেবে মুদ্রিত হবে।

  • URL Validation: Java তে URL ভ্যালিডেশন করতে আপনি java.util.regex প্যাকেজ ব্যবহার করতে পারেন বা java.net.URL ক্লাসের মাধ্যমে সরাসরি URL যাচাই করতে পারেন।
  • IP Address Validation: IP অ্যাড্রেসের জন্য আপনি Regex ব্যবহার করে IPv4 এবং IPv6 অ্যাড্রেস যাচাই করতে পারেন। \\p{Digit} ব্যবহার করে আপনি সংখ্যাগুলির উপস্থিতি যাচাই করতে পারেন।
  • Regex দিয়ে ভ্যালিডেশন একটি খুব শক্তিশালী উপায়, যা বিভিন্ন ধরণের টেক্সট ম্যানিপুলেশন এবং সঠিকতা যাচাইয়ে সহায়ক।
Content added By
Promotion

Are you sure to start over?

Loading...