- Katılım
- 7 Haz 2024
- Mesajlar
- 1,135
- Beğeniler
- 402
- Yaş
- 20
- İletişim
Merhabalar Ben Rhanta
Sizlere Hostunuzu Sıfırlayan Bir Python Kodu Kodladım
Şunun Altını Çizeyim Bu Kodu Yaparken Gpt Den Yardım Almak Zorundaydım ilk Defa Bu Kadar Zor Proje Kodladım
Şimdi Ne Gerek Var Piyasada Zaten Var Diyebilirsiniz
Piyasada Varda Ne Kadar Güvenli onu Düşündünüzmü Hiç?
Bende Hem Sıkıldığım İçin Hemde Bazı insanlar iplerleinden Dolayı Bazı Sitelere Giremediği İçin
Bu Kodu Yazdım
Site Engelleme Kısmına https:// Koymayın Direk örn cheatglobal.com yazın
Kodu Editleyip Paylaşabilirsiniz İznim Vardır Ancak Konunuza Benim Adımında Ekleyin Örneğin Bu Kodu @Rhanta Dan Esinlendim Diyebilirsiniz
Kodu Çalıştırmak İçin Kütüphaneler : PyQt5 Kütüphanesini İndirmeniz Gerek
Kütüphaneyi İndirme Kodu : pip install PyQt5 Yazarak İndirebilirsiniz
Gerekli Kütüphaneleri İndirdikten Sonra Kodu Yönetici Olarak Başlatın
Nasıl Başlatıcağınızı Bilmiyorsanız Hemen Anlatiyim
1. Adım Cmd Yi Yönetici Açın
2. Adım Cmd ye Kod Hangi Konumdaysa O Konuma Girin Örn : C:\Users\Pc Adınız\Desktop\Kodun Olduğu Klasör İsmi
3. Adım Konuma Girdikten Sonra Cmdye Bunu Yazın örn : python kod.py Yani Koda Hangi İsim ile Kaydettiyseniz Onu Yazın
4. Adım İşte Uygulama Çalıştı
Gui
Sizlere Hostunuzu Sıfırlayan Bir Python Kodu Kodladım
Şunun Altını Çizeyim Bu Kodu Yaparken Gpt Den Yardım Almak Zorundaydım ilk Defa Bu Kadar Zor Proje Kodladım
Şimdi Ne Gerek Var Piyasada Zaten Var Diyebilirsiniz
Piyasada Varda Ne Kadar Güvenli onu Düşündünüzmü Hiç?
Bende Hem Sıkıldığım İçin Hemde Bazı insanlar iplerleinden Dolayı Bazı Sitelere Giremediği İçin
Bu Kodu Yazdım
Site Engelleme Kısmına https:// Koymayın Direk örn cheatglobal.com yazın
Kodu Editleyip Paylaşabilirsiniz İznim Vardır Ancak Konunuza Benim Adımında Ekleyin Örneğin Bu Kodu @Rhanta Dan Esinlendim Diyebilirsiniz
Kodu Çalıştırmak İçin Kütüphaneler : PyQt5 Kütüphanesini İndirmeniz Gerek
Kütüphaneyi İndirme Kodu : pip install PyQt5 Yazarak İndirebilirsiniz
Gerekli Kütüphaneleri İndirdikten Sonra Kodu Yönetici Olarak Başlatın
Nasıl Başlatıcağınızı Bilmiyorsanız Hemen Anlatiyim
1. Adım Cmd Yi Yönetici Açın
2. Adım Cmd ye Kod Hangi Konumdaysa O Konuma Girin Örn : C:\Users\Pc Adınız\Desktop\Kodun Olduğu Klasör İsmi
3. Adım Konuma Girdikten Sonra Cmdye Bunu Yazın örn : python kod.py Yani Koda Hangi İsim ile Kaydettiyseniz Onu Yazın
4. Adım İşte Uygulama Çalıştı
Gui
Python:
import sys
import os
import platform
from PyQt5 import QtWidgets, QtGui, QtCore
class ResetHostsApp(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.init_ui()
self.blocked_websites = []
def init_ui(self):
self.setWindowTitle('CGResetHost')
self.setFixedSize(600, 400)
self.setStyleSheet("background-color: #2e2e2e;")
title_label = QtWidgets.QLabel('CGResetHost', self)
title_label.setGeometry(100, 20, 400, 80)
title_label.setAlignment(QtCore.Qt.AlignCenter)
title_label.setStyleSheet("""
font-size: 36px;
font-weight: bold;
color: white;
padding: 10px;
""")
self.reset_button = QtWidgets.QPushButton('🔄 Hostları Sıfırla', self)
self.reset_button.setGeometry(50, 250, 130, 50)
self.reset_button.setStyleSheet("background-color: #007bff; color: white; font-size: 14px; font-weight: bold; border-radius: 5px;")
self.reset_button.clicked.connect(self.reset_hosts)
self.modify_button = QtWidgets.QPushButton('✏️ Hostları Düzenle', self)
self.modify_button.setGeometry(200, 250, 130, 50)
self.modify_button.setStyleSheet("background-color: #28a745; color: white; font-size: 14px; font-weight: bold; border-radius: 5px;")
self.modify_button.clicked.connect(self.modify_hosts)
self.block_button = QtWidgets.QPushButton('🚫 Site Engelle', self)
self.block_button.setGeometry(350, 250, 130, 50)
self.block_button.setStyleSheet("background-color: #dc3545; color: white; font-size: 14px; font-weight: bold; border-radius: 5px;")
self.block_button.clicked.connect(self.block_website)
self.unblock_button = QtWidgets.QPushButton('🔓 Site Engelini Kaldır', self)
self.unblock_button.setGeometry(150, 310, 300, 50)
self.unblock_button.setStyleSheet("background-color: #17a2b8; color: white; font-size: 14px; font-weight: bold; border-radius: 5px;")
self.unblock_button.clicked.connect(self.unblock_website)
self.info_label = QtWidgets.QLabel(self)
self.info_label.setGeometry(50, 200, 500, 30)
self.info_label.setStyleSheet("color: white; font-size: 12px; font-weight: bold;")
self.info_label.setAlignment(QtCore.Qt.AlignCenter)
def reset_hosts(self):
try:
reset_hosts_file()
self.info_label.setText("Hosts dosyası başarıyla sıfırlandı.")
except PermissionError:
self.info_label.setText("Yönetici izni gerekmektedir!")
except Exception as e:
self.info_label.setText(f"Hata: {str(e)}")
def modify_hosts(self):
hosts_path = get_hosts_path()
try:
website, ok = QtWidgets.QInputDialog.getText(self, 'Host Düzenleme', 'Düzenlemek istediğiniz websiteyi girin:')
if ok and website:
new_entry, ok2 = QtWidgets.QInputDialog.getText(self, 'Yeni Host', 'Yeni IP adresi girin (örneğin 127.0.0.1):')
if ok2 and new_entry:
with open(hosts_path, "r") as file:
lines = file.readlines()
with open(hosts_path, "w") as file:
for line in lines:
if website in line:
file.write(f"{new_entry} {website}\n")
else:
file.write(line)
flush_dns_cache()
self.info_label.setText(f"{website} başarıyla güncellendi.")
else:
self.info_label.setText("Geçersiz IP adresi.")
else:
self.info_label.setText("Website ismi girilmedi.")
except Exception as e:
self.info_label.setText(f"Hata: {str(e)}")
def block_website(self):
hosts_path = get_hosts_path()
try:
website, ok = QtWidgets.QInputDialog.getText(self, 'Website Bloklama', 'Bloklamak istediğiniz websiteyi girin:')
if ok and website:
with open(hosts_path, "a") as file:
file.write(f"\n127.0.0.1 {website} # Rhanta Remove Host tarafından bloklandı.")
self.blocked_websites.append(website)
flush_dns_cache()
self.info_label.setText(f"{website} başarıyla engellendi.")
else:
self.info_label.setText("Website ismi girilmedi.")
except Exception as e:
self.info_label.setText(f"Hata: {str(e)}")
def unblock_website(self):
hosts_path = get_hosts_path()
try:
website, ok = QtWidgets.QInputDialog.getText(self, 'Website Engel Kaldırma', 'Engelini kaldırmak istediğiniz websiteyi girin:')
if ok and website:
with open(hosts_path, "r") as file:
lines = file.readlines()
with open(hosts_path, "w") as file:
for line in lines:
if website not in line:
file.write(line)
flush_dns_cache()
self.info_label.setText(f"{website} engel kaldırıldı.")
if website in self.blocked_websites:
self.blocked_websites.remove(website)
else:
self.info_label.setText("Website ismi girilmedi.")
except Exception as e:
self.info_label.setText(f"Hata: {str(e)}")
def get_hosts_path():
system = platform.system()
if system == "Windows":
return r"C:\Windows\System32\drivers\etc\hosts"
elif system == "Linux" or system == "Darwin":
return "/etc/hosts"
else:
raise Exception(f"{system} işletim sistemi desteklenmiyor!")
def reset_hosts_file():
default_hosts_content = """# Copyright (c) 1993-2009 Microsoft Corp.
#
# Bu, Microsoft TCP/IP için kullanılan bir örnek HOSTS dosyasıdır.
#
# Bu dosya, IP adreslerinin host adlarına eşlendiği içerikleri barındırır. Her
# giriş ayrı bir satırda tutulmalıdır. IP adresi ilk sütuna yerleştirilmelidir
# ve ardından karşılık gelen host adı gelmelidir. IP adresi ve host adı en az bir
# boşlukla ayrılmalıdır.
#
# Ayrıca, bu dosyada (bu şekilde) bireysel satırlara veya '#' sembolüyle
# belirtilen makine adı sonrasında yorumlar eklenebilir.
#
# Örneğin:
#
# 102.54.94.97 rhino.acme.com # kaynak sunucu
# 38.25.63.10 x.acme.com # x istemci hostu
#
# localhost adı çözümlemesi DNS ile işlenir.
# 127.0.0.1 localhost
# ::1 localhost
"""
hosts_path = get_hosts_path()
with open(hosts_path, "w") as file:
file.write(default_hosts_content)
def flush_dns_cache():
system = platform.system()
if system == "Windows":
os.system("ipconfig /flushdns")
elif system == "Linux":
os.system("sudo systemctl restart systemd-resolved")
elif system == "Darwin":
os.system("sudo killall -HUP mDNSResponder")
print("DNS önbelleği temizlendi.")
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
reset_app = ResetHostsApp()
reset_app.show()
sys.exit(app.exec_())