iT邦幫忙

2021 iThome 鐵人賽

DAY 9
9
Software Development

奇怪的知識增加了!原來程式還可以這樣用?!系列 第 9

[Day9] 記得色情守門員嗎? 教你用Python做簡易版守門員!

  • 分享至 

  • xImage
  •  

其實我根本不知道色情守門員的原理是什麼,也不想知道 (怨念很深)
這個程式沒有那麼神通廣大,不能自動偵測網站有沒有腥羶色,只能擋掉你指定的網站

本人不是什麼高手,只求堪用就好~
大家可以把程式裝在男/女朋友或小孩的電腦裡,設定擋掉指定網站的時間,時間到了又可以上了喔!

使用環境

  • Python 3.9
  • notepad++
  • CMD按右鍵 -> 以系統管理員身分執行 (很重要! 不然程式會失敗喔)

程式碼

import time
from datetime import datetime as dt

hosts_path = "C:/Windows/System32/drivers/etc/hosts" # 這是Windows系統的路徑,別的系統我不會喔

redirect = "127.0.0.1" # 這邊設定連到本機,你可以設定任何莫名其妙的IP
website_list = ["cn.pornhub.com","www.pornhub.com"] # 要擋的網站
while True:
    if dt(dt.now().year, dt.now().month, dt.now().day,00) < dt.now() < dt(dt.now().year, dt.now().month, dt.now().day,23): # 設定禁止時間區間(24小時制)
        print("守門員上班ing")
        with open(hosts_path, 'r+') as file: # 打開hosts檔案
            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("可以壞壞囉")
    time.sleep(5)

成果發表會
https://ithelp.ithome.com.tw/upload/images/20210906/201332864hL77dYVlh.png
執行程式後網站就上不了囉~
我沒在開車,只是想表達真的無法連上,拜託不要檢舉我><

原理說明

好的,雖然我很想把原理說明移到下一篇,
但為了觀看次數著想,還是在這邊簡單的說明一下這是怎麼做到的:

C:/Windows/System32/drivers/etc/hosts

Windows系統裡的這個文件,是瀏覽器上網的第一道門,
如果這個檔案有寫入網站對應的IP,就會直接送到該IP,不會做任何確認。

就像你手機的電話簿一樣,你媽的電話是0912345678,
但今天把你媽在電話簿的號碼改成110,之後你在電話簿按你媽的名字,也會無條件打給110。

所以只要更改這個文件,把你要擋的網站指向127.0.0.1(本機)或任何IP,
除非你把檔案改回來,不然你永遠都不能連上該網站囉~

啊如果想檢查你有沒有被這樣搞的話,你可以ping你連不上的網站
看看網站連線有沒有被改成奇怪的IP喔~
https://ithelp.ithome.com.tw/upload/images/20210906/201332869qvIYpZ81T.png
這個就是被改過指向IP了喔!


上一篇
[Day8] 從入門到入獄! 用Python竊聽電腦鍵盤事件!
下一篇
[Day10] 捉姦最終步驟! 把程式放在工作排程器偷偷執行吧!
系列文
奇怪的知識增加了!原來程式還可以這樣用?!31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
7
Kuma
iT邦新手 3 級 ‧ 2021-09-09 11:55:42

然後再做一點點修改,華麗變身「色情領航員」,一份 code 做兩門生意 XD

lulu_meat iT邦研究生 5 級 ‧ 2021-09-09 12:00:42 檢舉

對耶! 我怎麼沒想到XDD

Marvin iT邦新手 1 級 ‧ 2021-09-09 13:12:46 檢舉

樓主一生平安

1
dscwferp
iT邦高手 1 級 ‧ 2021-09-09 12:04:05

GOOD!
之前都是直接改 hosts
是用來檔網頁上 不想看的 廣告 & js 檔
是 很有用喔!
但很多 擋不完啦!
最後放棄了!

lulu_meat iT邦研究生 5 級 ‧ 2021-09-09 12:22:49 檢舉

對耶! 也可以拿來擋廣告!

1
obarisk
iT邦研究生 1 級 ‧ 2021-09-09 21:44:51

開一個 coredns 比較快吧

lulu_meat iT邦研究生 5 級 ‧ 2021-09-09 22:22:12 檢舉

可是這樣好像不能偷藏在別人電腦裡執行耶><

obarisk iT邦研究生 1 級 ‧ 2021-09-10 22:07:01 檢舉

直接在 DHCP 裡把 DNS 偷走如何?

1
icekimo
iT邦新手 3 級 ‧ 2021-09-10 09:26:45

純粹來置入行銷,我也有色情守門員 https://ithelp.ithome.com.tw/articles/10217411

lulu_meat iT邦研究生 5 級 ‧ 2021-09-10 23:25:30 檢舉

大神請接受我一拜!

我要留言

立即登入留言