ویرگول
ورودثبت نام
Mohammad Mehrnia
Mohammad Mehrnia
Mohammad Mehrnia
Mohammad Mehrnia
خواندن ۳ دقیقه·۷ سال پیش

جلوگیری از دسترسی به وب سایت‌ها با زبان برنامه‌نویسی پایتون

زبان برنامه‌نویسی پایتون، یک زبان همه منظوره و بسیار ساده برای مبتدیان می‌باشد و بنده قصد دارم برخی از نرم افزارهای کاربردی که می‌توان با این زبان توسعه داد را در بخش‌های مختلف آموزش دهم.

یکی از مکانیزم‌های کنترل دسترسی در سیستم‌عامل، جلوگیری از دسترسی کاربران به برخی سایت‌ها در برخی ساعات روز می‌باشد. در این آموزش انجام این فرآیند اتوماسیون را با زبان برنامه‌نویسی پایتون آموزش خواهیم داد.

در سیستم عامل ویندوز و لینوکس یک فایل برای تغییر آدرس‌های دسترسی به وب‌سایت‌ها تحت عنوان hosts تعبیه شده است این فایل در سیستم عامل لینوکس در آدرس زیر قرار دارد:

/etc/hosts

در این فایل می‌توان به صورت دسترسی آدرس IP دسترسی به وب سایت‌ها را تغییر داد. نمونه‌ای محتوی فایل در متن زیر نمایش داده شده است:

127.0.0.1 localhost 127.0.1.1 Mehrnia-Vaio 172.17.0.3 76aac019fe37 # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters

در محتوی فایل معرفی هر وب سایت از دو بخش تشکیل شده است: بخش اول آدرس IP و بخش دوم عنوان وب سایت. به عنوان نمونه با افزودن خط زیر می‌توان آدرس وب سایت www.google.com را به فایل افزود.

216.58.208.68 www.google.com

در سیستم عامل لینوکس برای افزودن خط مذکور در انتهای فایل می‌توانید از دستور زیر استفاده نمایید:

sudo echo "216.58.208.68 www.google.com" >> /etc/hosts

حال برای جلوگیری از دسترسی کاربران با سایت گوگل کافی است به جای آدرس IP وب سایت آدرس 127.0.0.1 قرار داده شود.

برای این منظور در سیستم عامل لینوکس می‌توانید از دستور زیر استفاده نمایید:

sudo sed -i 's/216.58.208.68/127.0.0.1/g' /etc/hosts

پس از اعمال تغییرات و فراخوانی وب سایت www.google.com با صفحه زیر مواجه خواهید شد که دال بر بلاک شدن وب سایت دارد.

مدیریت دستی فرآیند‌های عنوان شده در صورت بالا بودن تعداد وب‌ سایت‌های تحت مدیریت بسیار دشوار است لذا در ادامه برای اتوماسیون این فرآیندها از زبان برنامه‌نویسی پایتون استفاده خواهیم کرد.




# Web Site Restricted In Linux and Windows
import numpy import time from datetime import datetime as dt hosts_temp=r"D:\Dropbox\pp\block_websites\Demo\hosts" hosts_path="/etc/hosts" redirect="127.0.0.1" website_list=["www.facebook.com","facebook.com","dub119.mail.live.com","www.dub119.mail.live.com"] if __main__=="__name__": while True: if dt(dt.now().year,dt.now().month,dt.now().day,8) < dt.now() < dt(dt.now().year,dt.now().month,dt.now().day,16): print("Working hours...") with open(hosts_path,'r+') as file: content=file.read() for website in website_list: if website in content pass else: file.write(redirect+" "+ website+"\n") else: with open(hosts_path,'r+') as file: content=file.readlines() file.seek(0) for line in content: if not any(website in line for website in website_list): file.write(line) file.truncate() print("Fun hours...") time.sleep(5)

مشاهده سورس کد کامل
برای دیدن آموزش های تصویری به کانال ما را در آپارات دنبال کنید.


پایتونبرنامه نویسی
۱۱
۳
Mohammad Mehrnia
Mohammad Mehrnia
شاید از این پست‌ها خوشتان بیاید