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

পাইথন দিয়ে ওয়েবসাইট ব্লকার তৈরি করা


আপনি যদি কোনো বড় আইটি কোম্পানিতে কাজ করেন, তবে লক্ষ্য করেছেন হবে যে তাদের কিছু ওয়েবসাইট ব্লক করা থাকে, বিশেষ করে সোশ্যাল নেটওয়ার্কিং সাইট যেমন ফেসবুক, ইউটিউব, ইনস্টাগ্রাম ইত্যাদি।

থার্ড-পার্টি অ্যাপ্লিকেশন ব্যবহার না করে নির্দিষ্ট ওয়েবসাইট ব্লক করতে, আমরা নিজেদের কাস্টম অ্যাপ্লিকেশন ডেভেলপ করতে পারি যা আমাদের পছন্দের ওয়েবসাইট ব্লক করবে। পাইথনে ওয়েবসাইট ব্লকার ডেভেলপ করা কঠিন নয়। এটাই আমরা করব - একটি পাইথন স্ক্রিপ্ট ডেভেলপ করব যা আমাদের ইচ্ছামতো ওয়েবসাইট ব্লক করবে।

প্রিকোয়াজিট (Prerequisite):

  • পাইথন ৩.x ইনস্টলড
  • পাইথনের বেসিক জ্ঞান

আমরা কী করব:

আমরা একটি পাইথন অ্যাপ্লিকেশন ডেভেলপ করব যা দিনের নির্দিষ্ট সময় (সকাল ৯:০০ থেকে সন্ধ্যা ৬:০০ পর্যন্ত), অফিস আওয়ার ধরে সোশ্যাল নেটওয়ার্কিং সাইট (ফেসবুক, ইউটিউব ইত্যাদি) ব্লক করবে। আমরা পাইথনের বিল্ট-ইন লাইব্রেরি ব্যবহার করব, তাই কোনো থার্ড-পার্টি প্যাকেজ ইনস্টল করার প্রয়োজন নেই।

কিভাবে করব:

প্রতিটি অপারেটিং সিস্টেমের একটি হোস্টস (hosts) ফাইল থাকে। হোস্ট ফাইলটির লোকেশন ভিন্ন অপারেটিং সিস্টেমের জন্য ভিন্ন হতে পারে। এই হোস্ট ফাইলটি হোস্টনেমকে মেশিনের IP অ্যাড্রেসের সাথে ম্যাপ করে। এই হোস্ট ফাইলে, আমরা যেসব ওয়েবসাইট ব্লক করতে চাই সেগুলো লিস্ট করব।

আমাদের হোস্ট ফাইলটি এমন দেখাবে:

পাইথন দিয়ে ওয়েবসাইট ব্লকার তৈরি করা

যেহেতু আমি আমার হোস্ট ফাইলে কোনো ওয়েবসাইটের নাম উল্লেখ করিনি। যদি আমি "youtube.com" খুলতে চাই, তবে কোনো সমস্যা ছাড়াই খুলতে পারি। নিচে স্ক্রিনশট দেওয়া হলো (শুধু নিশ্চিত করার জন্য যে স্ক্রিপ্ট চালানোর পর এই ওয়েবসাইটটি খুলতে না পারে যদি আমি ব্লক করতে চাই)।

পাইথন দিয়ে ওয়েবসাইট ব্লকার তৈরি করা

নিচে আমাদের ওয়েবসাইট ব্লকার প্রোগ্রামটি দেওয়া হলো:

# লাইব্রেরি ইম্পোর্ট
import time
from datetime import datetime as dt

# উইন্ডোজ হোস্ট ফাইল পথ
hostsPath = r"C:\Windows\System32\drivers\etc\hosts"
redirect = "127.0.0.1"

# ব্লক করতে চাই এমন ওয়েবসাইটগুলো এই লিস্টে যোগ করুন
websites = ["www.youtube.com", "youtube.com", "www.facebook.com", "facebook.com"]

while True:
    # যে সময়কালে ওয়েবসাইট ব্লকার কাজ করবে
    if dt(dt.now().year, dt.now().month, dt.now().day, 9) < dt.now() < dt(dt.now().year, dt.now().month, dt.now().day, 18):
        print("Sorry Not Allowed...")
        with open(hostsPath, 'r+') as file:
            content = file.read()
            for site in websites:
                if site in content:
                    pass
                else:
                    file.write(redirect + " " + site + "\n")
    else:
        with open(hostsPath, 'r+') as file:
            content = file.readlines()
            file.seek(0)
            for line in content:
                if not any(site in line for site in websites):
                    file.write(line)
            file.truncate()
        print("Allowed access!")
    time.sleep(5)

আউটপুট

Sorry Not Allowed...
Sorry Not Allowed...
Sorry Not Allowed...
Sorry Not Allowed...
Sorry Not Allowed...
Sorry Not Allowed...
Sorry Not Allowed...
….

এখন যদি আমি খুলতে চাই – youtube.com বা facebook.com, তবে পাবো:

পাইথন দিয়ে ওয়েবসাইট ব্লকার তৈরি করা

আপনি উপরের কোডটি আপনার প্রয়োজন অনুযায়ী কাস্টমাইজ করতে পারেন যেমন: সময়কাল, ওয়েবসাইট, কাস্টম মেসেজ ইত্যাদি।

  1. পাইথনে ইমেজ-ভিত্তিক Стеগানোগ্রাফি (Steganography)

  2. পাইথনে Base64 ডেটা এনকোডিং (base64 মডিউল)

  3. পাইথনে cx_Freeze ব্যবহার করে এক্সিকিউটেবল বানানো

  4. পাইথনে ওয়েবসাইট অ্যালার্ম তৈরি করা