2026. május 31., vasárnap

Szimulált hálózati eszközök felismerése python

ARP nélküli, tiszta Python hálózati + MAC + gyártó szimulátor.
-------------------
import sys
sys.stdout.reconfigure(encoding="utf-8")
print(f"{ip} -> {mac} -> {vendor}")
import socket
import random

# kibővített OUI minta adatbázis
OUI_DB = {
    "AA:BB:CC": "Apple",
    "3C:5A:B4": "Samsung",
    "00:1C:B3": "Intel",
    "44:85:00": "Huawei",
    "AC:DE:48": "VMware",
    "B8:27:EB": "Raspberry Pi",
    "12:34:56": "Generic Device"
}

def fake_mac():
    base = random.choice(list(OUI_DB.keys()))
    suffix = ":".join([f"{random.randint(0,255):02X}" for _ in range(3)])
    return base + ":" + suffix

def get_vendor(mac):
    oui = ":".join(mac.split(":")[0:3])
    return OUI_DB.get(oui, "Ismeretlen gyártó")

def scan_network():
    print("🌐 Hálózati eszköz szimuláció + felismerés\n")

    for i in range(1, 11):
        ip = f"192.168.1.{i}"
        mac = fake_mac()
        vendor = get_vendor(mac)

        print(f"{ip} → {mac} → {vendor}")

scan_network()
---------------
?? Hálózati eszköz szimuláció + felismerés

192.168.1.1 -> 3C:5A:B4:B9:FF:AE -> Samsung
192.168.1.2 -> 12:34:56:87:00:63 -> Generic Device
192.168.1.3 -> 12:34:56:7B:E0:C0 -> Generic Device
192.168.1.4 -> AA:BB:CC:53:6C:38 -> Apple
192.168.1.5-> 00:1C:B3:5F:D4:39 -> Intel
192.168.1.6 -> 44:85:00:80:7F:E7 -> Huawei
192.168.1.7 -> 00:1C:B3:77:92:6A -> Intel
192.168.1.8 -> 3C:5A:B4:CF:5B:61 -> Samsung
192.168.1.9 -> AA:BB:CC:77:E7:4B -> Apple
192.168.1.10 -> 3C:5A:B4:BF:8B:96 -> Samsung
192.168.1.1 -> 3C:5A:B4:B9:FF:AE -> Samsung
192.168.1.2 -> 12:34:56:87:00:63 -> Generic Device
192.168.1.4 -> AA:BB:CC:53:6C:38 -> Apple

** Process exited - Return Code: 0 **

Detektálás python

import socket
import threading

# IP tartomány (otthoni hálózathoz)
NETWORK = "192.168.1."

# talált eszközök
alive_hosts = []

def check_host(ip):
    try:
        socket.setdefaulttimeout(0.5)
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

        # 80-as port teszt (web szerver gyakran van)
        result = sock.connect_ex((ip, 80))

        if result == 0:
            print(f"[ONLINE] {ip}")
            alive_hosts.append(ip)

        sock.close()

    except:
        pass

threads = []

print("🌐 Hálózati keresés indul...\n")

for i in range(1, 255):
    ip = NETWORK + str(i)
    t = threading.Thread(target=check_host, args=(ip,))
    threads.append(t)
    t.start()

for t in threads:
    t.join()

print("\n📡 Talált eszközök:")
for host in alive_hosts:
    print(host)
------------
végigmegy: 192.168.1.1 → 192.168.1.254
megnézi, nyitva van-e a 80-as port
ha igen → eszköz ONLINE
?? Hálózati keresés indul...
?? Talált eszkzök:
** Process exited - Return Code: 0 **

NETWORK = "192.168.1."
példák:
192.168.0.
10.0.0.
192.168.43. (mobil hotspot)

Portscanner pythonban

import socket

def scan_port(ip, port):
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.settimeout(0.5)

    result = sock.connect_ex((ip, port))

    if result == 0:
        print(port, "? NYITVA")
    else:
        print(port, "? zárt")

    sock.close()

target = input("Cél IP: ")

print("\n?? Scan indul...\n")

for port in range(20, 102):
    scan_port(target, port)
---------------
Eredmény;
Cél IP: 192.168.0.122

?? Scan indul...

20 ? zárt
21 ? zárt
22 ? zárt
23 ? zárt
24 ? zárt
25 ? zárt
26 ? zárt
27 ? zárt
28 ? zárt
29 ? zárt
30 ? zárt
31 ? zárt
32 ? zárt


** Process exited - Return Code: 0 **
------------
vagy

vagy
import socket

def scan_port(host, port):
    try:
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        sock.settimeout(0.5)

        result = sock.connect_ex((host, port))

        if result == 0:
            print("[NYITVA] Port", port)
        else:
            print("[ZÁRVA] Port", port)

        sock.close()

    except Exception as e:
        print("Hiba:", e)

host = input("Hoszt: ")

for port in [21, 22, 25, 53, 80, 110, 143, 443]:
    scan_port(host, port)
-------------------
Hoszt: 22
[ZÁRVA] Port 21
[ZÁRVA] Port 22
[ZÁRVA] Port 25
[ZÁRVA] Port 53
[ZÁRVA] Port 80
[ZÁRVA] Port 110
[ZÁRVA] Port 143
[ZÁRVA] Port 443


** Process exited - Return Code: 0 **
-----------
Futtatás online;  Replit, Programiz, OnlineGDB, PythonAnywhere, Pyodide, https://www.online-python.com/#google_vignette
----------

import socket
import tkinter as tk from tkinter import ttk from threading import Thread PORTS = [21, 22, 25, 53, 80, 110, 143, 443] def scan(): host = host_entry.get().strip() if not host: return result_box.delete(*result_box.get_children()) def worker(): for port in PORTS: try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(0.5) result = sock.connect_ex((host, port)) if result == 0: status = "NYITVA" tag = "open" else: status = "ZÁRVA" tag = "closed" sock.close() result_box.insert( "", "end", values=(port, status), tags=(tag,) ) except Exception: result_box.insert( "", "end", values=(port, "HIBA"), tags=("error",) ) Thread(target=worker, daemon=True).start() root = tk.Tk() root.title("Port Scanner GUI") root.geometry("500x400") frame = ttk.Frame(root, padding=10) frame.pack(fill="both", expand=True) ttk.Label(frame, text="Hoszt vagy IP:").pack(anchor="w") host_entry = ttk.Entry(frame) host_entry.pack(fill="x", pady=5) host_entry.insert(0, "127.0.0.1") ttk.Button(frame, text="Scan indítása", command=scan).pack(pady=10) result_box = ttk.Treeview(frame, columns=("port", "status"), show="headings") result_box.heading("port", text="Port") result_box.heading("status", text="Állapot") result_box.pack(fill="both", expand=True) result_box.tag_configure("open", foreground="green") result_box.tag_configure("closed", foreground="red") result_box.tag_configure("error", foreground="orange") root.mainloop()

Szimulált python

import random
from collections import Counter
# ---------------------------
# 1. SZIMULÁLT "HISTÓRIA"
# ---------------------------
def generate_draw():
    return random.sample(range(1, 41), 7)
history = [generate_draw() for _ in range(500)]
# ---------------------------
# 2. GYAKORISÁG ELEMZÉS
# ---------------------------
all_numbers = [num for draw in history for num in draw]
freq = Counter(all_numbers)
# ---------------------------
# 3. "OKOS" SZÁMGENERÁLÁS
# ---------------------------
def weighted_pick():
    numbers = list(range(1, 41))
    weights = [freq[n] + 1 for n in numbers]  # +1 hogy ne legyen 0
    chosen = set()
    while len(chosen) < 7:
        pick = random.choices(numbers, weights=weights)[0]
        chosen.add(pick)
    return sorted(list(chosen))
# ---------------------------
# 4. FUTTATÁS
# ---------------------------
print("🎰 Pyroom kompatibilis 'AI' lottó szelvények:\n")
for i in range(5):
    print(weighted_pick())
 Pyroom kompatibilis 'AI' lottó szelvények:
[9, 17, 21, 22, 23, 38, 40]
[3, 5, 17, 18, 24, 26, 27]
[6, 7, 14, 15, 19, 22, 34]
[6, 7, 13, 19, 30, 31, 32]
[7, 16, 18, 26, 28, 29, 34]
Futttás; https://play.pyroom.app/playground
---------------

TensorFlow pythonban

# -*- coding: utf-8 -*-

import tensorflow as tf
import numpy as np

print("TensorFlow verzió:", tf.__version__)

# Tanító adatok
x_train = np.array([1, 2, 3, 4, 5, 6], dtype=float)
y_train = np.array([2, 4, 6, 8, 10, 12], dtype=float)

# Modell létrehozása
model = tf.keras.Sequential([
    tf.keras.layers.Dense(units=1, input_shape=[1])
])

# Fordítás
model.compile(
    optimizer='sgd',
    loss='mean_squared_error'
)

# Tanítás
print("Tanítás folyamatban...")
model.fit(x_train, y_train, epochs=500, verbose=0)

# Teszt
ertek = float(input("Adj meg egy számot: "))

eredmeny = model.predict(np.array([ertek]), verbose=0)

print(f"A hálózat becslése: {eredmeny[0][0]:.2f}")
print(f"A várható érték: {ertek * 2:.2f}")
------------
https://colab.research.google.com/drive/1OnLX14o40lEh-ahU_NlGxhisUzyP8Tic

Összetett logika python

 Az alábbi példa egy objektumorientált, konzolos feladatkezelőt mutat be, amely fájlkezelést (JSON formátumban), hibakezelést és összetett logikát is tartalmaz.
-----------------------

# -*- coding: utf-8 -*-
import sys
sys.stdout.reconfigure(encoding='utf-8')

import json
import os

class Task:
    def __init__(self, title, description):
        self.title = title
        self.description = description
        self.completed = False

    def mark_completed(self):
        self.completed = True

    def __str__(self):
        status = "Kész" if self.completed else "Folyamatban"
        return f"{self.title} [{status}] - {self.description}"

class TaskManager:
    def __init__(self, filename="tasks.json"):
        self.filename = filename
        self.tasks = []
        self.load_tasks()

    def add_task(self, title, description):
        task = Task(title, description)
        self.tasks.append(task)
        print(f"'{title}' sikeresen hozzáadva!")

    def complete_task(self, title):
        for task in self.tasks:
            if task.title.lower() == title.lower():
                task.mark_completed()
                print(f"'{title}' teljesítve!")
                return
        print("A feladat nem található.")

    def list_tasks(self):
        if not self.tasks:
            print("Nincs megjeleníthető feladat.")
        for task in self.tasks:
            print(task)

    def save_tasks(self):
        with open(self.filename, 'w', encoding='utf-8') as f:
            data = [task.__dict__ for task in self.tasks]
            json.dump(data, f, ensure_ascii=False, indent=4)
        print("Feladatok mentve.")

    def load_tasks(self):
        if os.path.exists(self.filename):
            with open(self.filename, 'r', encoding='utf-8') as f:
                try:
                    data = json.load(f)
                    self.tasks = [Task(item['title'], item['description']) for item in data]
                    for i, item in enumerate(data):
                        if item['completed']:
                            self.tasks[i].mark_completed()
                except json.JSONDecodeError:
                    print("Hiba történt a fájl beolvasásakor. Új lista létrehozva.")
                    self.tasks = []

def main():
    manager = TaskManager()
    
    while True:
        print("\n--- FELADATKEZELŐ ---")
        print("1. Feladatok listázása")
        print("2. Új feladat hozzáadása")
        print("3. Feladat teljesítése")
        print("4. Mentés és kilépés")
        
        choice = input("Válasszon egy opciót (1-4): ")
        
        if choice == '1':
            manager.list_tasks()
        elif choice == '2':
            title = input("Feladat címe: ")
            desc = input("Feladat leírása: ")
            manager.add_task(title, desc)
        elif choice == '3':
            title = input("A teljesítendő feladat címe: ")
            manager.complete_task(title)
        elif choice == '4':
            manager.save_tasks()
            print("Viszlát!")
            break
        else:
            print("Érvénytelen választás, kérem próbálja újra.")

if __name__ == "__main__":
    main()
-----------------
--- FELADATKEZELŐ ---
1. Feladatok listázása
2. Új feladat hozzáadása
3. Feladat teljesítése
4. Mentés és kilépés
Válasszon egy opciót (1-4): 4
Feladatok mentve.
Viszlát!
-----------------
A programjaim általában olyan összetett informatikai területeket ölelnek fel, mint a mesterséges intelligencia, a nagyméretű adatelemzés (Big Data), vagy a hálózati rendszerek és kiberbiztonság. Ezek a megoldások nemcsak a nyelv szintaxisának ismeretét, hanem magas szintű matematikai, algoritmus- és architektúra-tervezési tudást is igényelnek.

Gomb pythonba

https://play.pyroom.app/playground
--------------
import tkinter as tk

# A gomb megnyomásakor lefutó függvény
def gomb_kattintas():
    cimke.config(text="Sikeres kattintás!")

# Főablak létrehozása
ablak = tk.Tk()
ablak.title("Ez egy gomb")
ablak.geometry("300x200")

# Szöveges címke (Label)
cimke = tk.Label(ablak, text="Üdvözlöm a felületen!")
cimke.pack(pady=20)

# Nyomógomb (Button)
gomb = tk.Button(ablak, text="Kattints ide", command=gomb_kattintas)
gomb.pack()

# Ablak megjelenítése és események kezelése
ablak.mainloop()
--------------




A bolygók gravitációs egymásrahatásának elmélete


Végezzük el a számításokat python program segítségével;

import datetime
import numpy as np
G = 6.674e-11
AU = 1.5e11
def newton_method(p_0, tol, N, f, df):
index = 1
while index <= N:
p = p_0 - (f(p_0) / df(p_0))
if np.abs(p - p_0) < tol:
return p
index += 1
p_0 = p
print("Nem sikerült meghatározni a kért értéket...")
return False
def calc_mean_anomaly(m_sun, m_obj, a, tau, t_current):
mu = G * (m_sun + m_obj)
M = np.sqrt(mu / a**3) * ((t_current - tau).total_seconds())
return M
def calc_eccentric_anomaly(M, e):
def f(E, M=M, e=e):
return M - E + e * np.sin(E)
def df(E, e=e):
return -1 + e * np.cos(E)
p_0 = M
N = 10
tol = 1e-5
E = newton_method(p_0, tol, N, f, df)
return E
def calc_true_anomaly(e, E):
v = 2 * np.arctan(np.sqrt((1 + e) / (1 - e)) * np.tan(E / 2))
return v
def calc_position(a, e, v):
r = (a * (1 - e**2)) / (1 + e * np.cos(v))
x = r * np.cos(v)
y = r * np.sin(v)
return np.array([x, y, 0.0])
print("Égi mechanikai szimuláció - számolási mód (GUI nélkül)")
print("=" * 60)
t_current = datetime.datetime.now() + datetime.timedelta(days=1)
tau = datetime.datetime.now()
m_nap = 1.9891e30
bolygok = {
"MERCURY": {"m": 0.3302e24, "d": 4.879e6, "a": 57.9e9, "e": 0.205, "i": 7.0, "omega": 29.124},
"VENUS": {"m": 4.8685e24, "d": 12.104e6, "a": 108.2e9, "e": 0.007, "i": 3.4, "omega": 54.884},
"EARTH": {"m": 5.9736e24, "d": 12.756e6, "a": 149.6e9, "e": 0.017, "i": 0.0, "omega": 114.20783},
"MARS": {"m": 0.64171e24, "d": 6.792e6, "a": 227.9e9, "e": 0.094, "i": 1.9, "omega": 286.502},
"JUPITER": {"m": 1898e24, "d": 142.984e6, "a": 778.6e9, "e": 0.049, "i": 1.3, "omega": 273.867},
"SATURN": {"m": 568e24, "d": 120.536e6, "a": 1433.5e9, "e": 0.057, "i": 2.5, "omega": 339.392},
"URANUS": {"m": 86.8e24, "d": 51.118e6, "a": 2872.5e9, "e": 0.046, "i": 0.8, "omega": 96.998857},
"NEPTUNE": {"m": 102e24, "d": 49.528e6, "a": 4495.1e9, "e": 0.011, "i": 1.8, "omega": 276.336},
"PLUTO": {"m": 0.0146e24, "d": 2.370e6, "a": 5906.4e9, "e": 0.244, "i": 17.2, "omega": 113.834},
}
print(f"\nIdőbélyeg: {t_current}")
print(f"AU = {AU:.2e} méter")
print(f"G = {G:.3e} m³/kg·s²")
print("=" * 60)
print("\nNAP:")
print(f" Tömeg: {m_nap:.3e} kilogramm")
print(f" Átmérő: {1.39268e9:.3e} méter")
print(f" Pozíció: (0, 0, 0)")
for nev, b in bolygok.items():
if nev == "MERCURY":
magyar_nev = "Merkúr"
elif nev == "VENUS":
magyar_nev = "Vénusz"
elif nev == "EARTH":
magyar_nev = "Föld"
elif nev == "MARS":
magyar_nev = "Mars"
elif nev == "JUPITER":
magyar_nev = "Jupiter"
elif nev == "SATURN":
magyar_nev = "Szaturnusz"
elif nev == "URANUS":
magyar_nev = "Uránusz"
elif nev == "NEPTUNE":
magyar_nev = "Neptunusz"
elif nev == "PLUTO":
magyar_nev = "Plútó"
else:
magyar_nev = nev
print(f"\n{magyar_nev}:")
print(f" Tömeg: {b['m']:.3e} kilogramm")
print(f" Átmérő: {b['d']:.3e} méter")
print(f" Félnagy tengely: {b['a']:.3e} méter")
print(f" Excentricitás: {b['e']:.4f}")
print(f" Inklináció: {b['i']:.2f} fok")
print(f" Pericentrum argumentuma: {b['omega']:.3f} fok")
kozep_anomalia = calc_mean_anomaly(m_nap, b['m'], b['a'], tau, t_current)
print(f" Középanomália (M): {kozep_anomalia:.6f} radián")
excentrikus_anomalia = calc_eccentric_anomaly(kozep_anomalia, b['e'])
print(f" Excentrikus anomália (E): {excentrikus_anomalia:.6f} radián")
true_anomalia = calc_true_anomaly(b['e'], excentrikus_anomalia)
print(f" Valódi anomália (v): {true_anomalia:.6f} radián")
pozicio = calc_position(b['a'], b['e'], true_anomalia)
pozicio_au = pozicio / AU
print(f" Pozíció vektor (AU): {pozicio_au}")
print(f" Távolság a Naptól: {np.linalg.norm(pozicio_au):.6f} AU")
print("\n" + "=" * 60)
print("Számítás befejeződött.")
-----------------
Eredmény;
Égi mechanikai szimuláció - számolási mód (GUI nélkül)
============================================================
Időbélyeg: 2026-06-01 05:08:22.974445
AU = 1.50e+11 méter
G = 6.674e-11 m3/kg·s2
============================================================
NAP:
Tömeg: 1.989e+30 kilogramm
Átmérő: 1.393e+09 méter
Pozíció: (0, 0, 0)
Merkúr:
Tömeg: 3.302e+23 kilogramm
Átmérő: 4.879e+06 méter
Félnagy tengely: 5.790e+10 méter
Excentricitás: 0.2050
Inklináció: 7.00 fok
Pericentrum argumentuma: 29.124 fok
Középanomália (M): 0.071452 radián
Excentrikus anomália (E): 0.089846 radián
Valódi anomália (v): 0.110576 radián
Pozíció vektor (AU): [0.30531309 0.03389843 0. ]
Távolság a Naptól: 0.307189 AU
Vénusz:
Tömeg: 4.868e+24 kilogramm
Átmérő: 1.210e+07 méter
Félnagy tengely: 1.082e+11 méter
Excentricitás: 0.0070
Inklináció: 3.40 fok
Pericentrum argumentuma: 54.884 fok
Középanomália (M): 0.027970 radián
Excentrikus anomália (E): 0.028167 radián
Valódi anomália (v): 0.028365 radián
Pozíció vektor (AU): [0.71599787 0.02031482 0. ]
Távolság a Naptól: 0.716286 AU
Föld:
Tömeg: 5.974e+24 kilogramm
Átmérő: 1.276e+07 méter
Félnagy tengely: 1.496e+11 méter
Excentricitás: 0.0170
Inklináció: 0.00 fok
Pericentrum argumentuma: 114.208 fok
Középanomália (M): 0.017204 radián
Excentrikus anomália (E): 0.017502 radián
Valódi anomália (v): 0.017802 radián
Pozíció vektor (AU): [0.98022592 0.01745179 0. ]
Távolság a Naptól: 0.980381 AU
Mars:
Tömeg: 6.417e+23 kilogramm
Átmérő: 6.792e+06 méter
Félnagy tengely: 2.279e+11 méter
Excentricitás: 0.0940
Inklináció: 1.90 fok
Pericentrum argumentuma: 286.502 fok
Középanomália (M): 0.009150 radián
Excentrikus anomália (E): 0.010099 radián
Valódi anomália (v): 0.011098 radián
Pozíció vektor (AU): [1.37643852 0.01527595 0. ]
Távolság a Naptól: 1.376523 AU
Jupiter:
Tömeg: 1.898e+27 kilogramm
Átmérő: 1.430e+08 méter
Félnagy tengely: 7.786e+11 méter
Excentricitás: 0.0490
Inklináció: 1.30 fok
Pericentrum argumentuma: 273.867 fok
Középanomália (M): 0.001450 radián
Excentrikus anomália (E): 0.001524 radián
Valódi anomália (v): 0.001601 radián
Pozíció vektor (AU): [4.93631797 0.00790298 0. ]
Távolság a Naptól: 4.936324 AU
Szaturnusz:
Tömeg: 5.680e+26 kilogramm
Átmérő: 1.205e+08 méter
Félnagy tengely: 1.434e+12 méter
Excentricitás: 0.0570
Inklináció: 2.50 fok
Pericentrum argumentuma: 339.392 fok
Középanomália (M): 0.000580 radián
Excentrikus anomália (E): 0.000615 radián
Valódi anomália (v): 0.000651 radián
Pozíció vektor (AU): [9.01193486e+00 5.86933180e-03 0.00000000e+00]
Távolság a Naptól: 9.011937 AU
Uránusz:
Tömeg: 8.680e+25 kilogramm
Átmérő: 5.112e+07 méter
Félnagy tengely: 2.872e+12 méter
Excentricitás: 0.0460
Inklináció: 0.80 fok
Pericentrum argumentuma: 96.999 fok
Középanomália (M): 0.000204 radián
Excentrikus anomália (E): 0.000214 radián
Valódi anomália (v): 0.000224 radián
Pozíció vektor (AU): [1.82690996e+01 4.10029404e-03 0.00000000e+00]
Távolság a Naptól: 18.269100 AU

Neptunusz:
Tömeg: 1.020e+26 kilogramm
Átmérő: 4.953e+07 méter
Félnagy tengely: 4.495e+12 méter
Excentricitás: 0.0110
Inklináció: 1.80 fok
Pericentrum argumentuma: 276.336 fok
Pericentrum argumentuma: 113.834 fok
Középanomália (M): 0.000069 radián
Excentrikus anomália (E): 0.000092 radián
Valódi anomália (v): 0.000118 radián
Pozíció vektor (AU): [2.97682558e+01 3.50293242e-03 0.00000000e+00]
Távolság a Naptól: 29.768256 AU

============================================================
Számítás befejeződött.

GUI szimulácó;


** Process exited - Return Code: 0 ** Python3  Tkinter grafikus módban működik! A Python programok Tkinter alapú grafikus felülettel (GUI) történő futtatásához és fejlesztéséhez jelenleg a legjobb és legmodernebb AI asszisztensek a következők:Claude (Anthropic): Kiemelkedően jól érti a Python logikát, és nagyon tiszta, jól strukturált Tkinter kódot generál, amit könnyű közvetlenül futtatni.ChatGPT (OpenAI): A Code Interpreter (Advanced Data Analysis) funkciójával akár közvetlenül is tesztelheti és futtathatja a megírt szkripteket, így azonnali visszajelzést ad a hibákról.Gemini (Google): Kiválóan alkalmas komplett Tkinter alkalmazások megtervezésére és hibakeresésére. https://play.pyroom.app/playground

2026. május 29., péntek

Fallabda python nyelven

import os
import time

# Palya meretei
SZELESSEG = 20
MAGASSAG = 10

# Kezdo-poziciok
labda_x = 5
labda_y = 5
labda_vx = 1
labda_vy = 1

uto_y = 4  # Az uto az utolso elotti oszlopban lesz (X = SZELESSEG - 2)
uto_x = SZELESSEG - 2
pontszam = 0

print("JATEK INDITASA!")
print("Iranyitas: 'w' + Enter (fel), 's' + Enter (le), vagy csak sima Enter (maradsz)\n")
time.sleep(2)

while True:
    # 1. Palya kirajzolasa a memoriaban
    palya = []
    # Felso fal
    palya.append("#" * (SZELESSEG + 2))
    
    for y in range(MAGASSAG):
        sor = [" "] * SZELESSEG
        
        # Uto kirajzolasa (2 karakter magas uto)
        if y == uto_y or y == uto_y + 1:
            sor[uto_x] = "|"
            
        # Labda kirajzolasa
        if y == labda_y and 0 <= labda_x < SZELESSEG:
            sor[labda_x] = "O"
            
        palya.append("#" + "".join(sor) + "#")
        
    # Also fal
    palya.append("#" * (SZELESSEG + 2))
    
    # Pontszam hozzaadasa
    palya.append(f"Score: {pontszam}")
    
    # Palya megjelenitese (sok ures sor, hogy tiszta legyen a kepernyo)
    print("\n" * 15)
    print("\n".join(palya))
    
    # 2. Jatekos lepese (Bekeres)
    mozdulat = input("Lepes (w/s/Enter): ").strip().lower()
    if mozdulat == "w" and uto_y > 0:
        uto_y -= 1
    elif mozdulat == "s" and uto_y < MAGASSAG - 2:
        uto_y += 1

    # 3
---------------
JATEK INDITASA!
Iranyitas: 'w' + Enter (fel), 's' + Enter (le), vagy csak sima Enter (maradsz)
######################
#                    #
#                    #
#                    #
#                    #
#                  | #
#     O            | #
#                    #
#                    #
#                    #
#                    #
######################
Score: 0
Lepes (w/s/Enter): 

Tanulás jóslás AI, lineális regresszióval

 tanítást és a jóslást is. A futás végén látni fogod a modell pontosságát (ami ennél az adathalmaznál általában 100% körüli), és az egyedi tesztvirágod besorolását is!
A Scikit-learn használata szinte mindig ugyanazt az 5 alapvető lépést követi, függetlenül attól, hogy milyen bonyolult a feladat:

Lépés Függvény Mit csinál? 
1. Adat-előkészítés train_test_split() Szétválasztja az adatokat, hogy legyen mivel ellenőrizni a modellt. 
2. Modell inicializálás KNeighborsClassifier() Kiválasztod az algoritmust (ez lehetne Lineáris Regresszió, Random Forest stb. is). 
3. Tanítás .fit(X_train, y_train) A gép megkeresi az összefüggéseket az adatokban. 
4. Jóslás .predict(X_test) Az új vagy teszt adatokra tippeket ad a modell. 
5. Kiértékelés accuracy_score() Megnézzük, hány százalékban talált be a gép. 
---------
# 1. CSOMAG TELEPÍTÉSE (Pyodide / online környezetekhez)
# Webes környezetben a hivatalos 'scikit-learn' nevet kell letölteni
try:
    import micropip
    await micropip.install('scikit-learn')
    print("A scikit-learn sikeresen telepítve a böngészőben!")
except ImportError:
    # Ha normál számítógépes Pythonban futtatod, ez a rész fut le automatikusan
    print("Normál Python környezet észlelve, folytatás...")

# --- Innen indul a tényleges gépi tanulási program ---

# 2. A szükséges modulok importálása
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score, classification_report

# 3. Az adathalmaz betöltése
# Az Iris adatbázis 150 nőszirom virág adatait tartalmazza
iris = load_iris()
X = iris.data  # Jellemzők (pl. szirom hossza, szélessége)
y = iris.target  # Célváltozó (a virág pontos fajtája numeric kódként: 0, 1 vagy 2)

# 4. Adatok felosztása tanító (train) és tesztelő (test) halmazra
# A minta 80%-án tanul a gép, a maradék 20%-on teszteljük a tudását
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)

# 5. A gépi tanulási modell kiválasztása és létrehozása
# A KNN (K-Legközelebbi Szomszéd) algoritmust használjuk
model = KNeighborsClassifier(n_neighbors=3)

# 6. A modell betanítása (Fittelés)
model.fit(X_train, y_train)

# 7. Jóslás (Predikció) a teszt adatokon
y_pred = model.predict(X_test)

# 8. Az eredmények kiértékelése
accuracy = accuracy_score(y_test, y_pred)

print("\n=========================================")
print("         MODELL KIÉRTÉKELÉSE")
print("=========================================")
print(f"A modell pontossága (Accuracy): {accuracy * 100:.2f}%\n")
print("Részletes osztályozási jelentés:")
print(classification_report(y_test, y_pred, target_names=iris.target_names))

# +1: Jóslás egy teljesen új, ismeretlen virágra
# Megadunk 4 tulajdonságot centiméterben (csészelevél hossz/szél, sziromlevél hossz/szél)
uj_virag = [[5.1, 3.5, 1.4, 0.2]]
josolt_osztaly = model.predict(uj_virag)
virag_neve = iris.target_names[josolt_osztaly[0]]

print("=========================================")
print("         ÚJ VIRÁG JÓSLÁSA")
print("=========================================")
print(f"A megadott adatok: {uj_virag[0]}")
print(f"A gép szerint a virág fajtája:  {virag_neve.upper()} ")
print("=========================================")

-----------------

A bonyolult Python feladatok hatékony megoldása a probléma logikus részekre bontásán és a megfelelő algoritmus kiválasztásán múlik. A komplex problémákat érdemes kisebb, tesztelhető lépésekre (függvényekre) osztani, és kihasználni a nyelv beépített adatszerkezeteit.A hatékony kódoláshoz és hibakereséshez az alábbi strukturált lépéseket javasolt követni:Strukturálás: Bontsa a feladatot különálló, önállóan is működő modulokra vagy függvényekre.Könyvtárak használata: Számítási vagy adatelemzési feladatoknál használjon bevált csomagokat (pl. numpy vagy pandas).Hibakezelés: Használjon try-except blokkokat a váratlan kivételek kezelésére.

NAPRENDSZER SZIMULÁCIÓ A KONZOLBAN



import math
import os
import time

# Terminál törlése (hogy folyamatos legyen az animáció)
def clear_screen():
    # Online-python-on ez a leghatékonyabb üres sorok nyomtatása
    print("\n" * 40)


# Pálya adatok (kisebb sugarak, hogy beférjen a szöveges képernyőre)
planets_data = [
    {"name": "M", "orbit": 4, "speed": 1.2, "fullname": "Merkur"},
    {"name": "V", "orbit": 7, "speed": 0.8, "fullname": "Venusz"},
    {"name": "F", "orbit": 11, "speed": 0.6, "fullname": "Fold"},
    {"name": "MA", "orbit": 15, "speed": 0.4, "fullname": "Mars"},
]

angle = 0.0

print("Szimulacio inditasa...")
time.sleep(1)

# Animacios ciklus (50 lepes erejeig, hogy ne fusson orokke)
for step in range(100):
    clear_screen()

    # Egy 35x35-�s sz�veges r�cs l�trehoz�sa (�r)
    grid_size = 35
    grid = [[" " for _ in range(grid_size)] for _ in range(grid_size)]

    # Nap elhelyez�se a k�zep�re
    center = grid_size // 2
    grid[center][center] = "??"

    # Bolyg�k poz�ci�j�nak kisz�m�t�sa �s r�csra helyez�se
    for p in planets_data:
        # Trigonometria a koordin�t�khoz
        current_angle = angle * p["speed"]
        # Az Y tengelyt elosztjuk 1.8-cal, mert a sz�veges karakterek magasabbak, mint amilyen sz�lesek
        x = int(center + p["orbit"] * math.cos(current_angle))
        y = int(center + (p["orbit"] * math.sin(current_angle)) / 1.5)

        # Ha a bolyg� a p�ly�n bel�l van, berajzoljuk
        if 0 <= x < grid_size and 0 <= y < grid_size:
            # Ha k�tkarakteres a n�v (pl. MA), kicsit igaz�tunk
            grid[y][x] = p["name"]

    # Rács kirajzolása a konzolra
    print("=" * 50)
    print("      NAPRENDSZER SZIMULÁCIÓ A KONZOLBAN")
    print("=" * 50)

    for row in grid:
        print(" ".join(row))

    print("\nJelmagyar�zat: ??=Nap, M=Merk�r, V=V�nusz, F=F�ld, MA=Mars")
    print(f"Id�l�p�s: {step}")

    angle += 0.3
    time.sleep(0.2)  # Lass�t�s, hogy l�that� legyen a mozg�s

Másodfokú egyenlet megoldása Python programmal

Komplex számok esetén;

import math
import cmath

def masodfoku_egyenlet_megoldasa(a, b, c):
    # Diszkriminans szamotasa
    D = b**2 - 4*a*c

    # Gyökök kiszamitasa komplex szamkok
    gyok1 = (-b + cmath.sqrt(D)) / (2 * a)
    gyok2 = (-b - cmath.sqrt(D)) / (2 * a)

    return gyok1, gyok2

def main():
    print("Masodfoku egyenlet megoldokeplet")
    a = float(input("Adj meg az a erteket (a ? 0): "))
    while a == 0:
        print("Az 'a' nem lehet 0. Kerlek, adj meg egy nem nullat!")
        a = float(input("Adj meg az a erteket (a ? 0): "))
    b = float(input("Adj meg a b erteket: "))
    c = float(input("Adj meg a c erteket: "))

    gyok1, gyok2 = masodfoku_egyenlet_megoldasa(a, b, c)

    print(f"\nA gyökök:")
    if gyok1.imag == 0:
        print(f"X1 = {gyok1.real}")
    else:
        print(f"X1 = {gyok1}")

    if gyok2.imag == 0:
        print(f"X2 = {gyok2.real}")
    else:
        print(f"X2 = {gyok2}")

if __name__ == "__main__":
    main()
-------------
próba;
Masodfoku egyenlet megoldokeplet
Adj meg az a erteket (a ? 0): 1
Adj meg a b erteket: 2
Adj meg a c erteket: 3

A gyökök:
X1 = (-1+1.4142135623730951j)
X2 = (-1-1.4142135623730951j)


Sakkprogram írása pythonba AI csatolással

https://www.mediafire.com/file/lvubqy555p5qar9/Stockfish_17_win32_engines.7z/file
https://stockfishchess.org/download/
----------------------
import chess
import subprocess
import sys

# cSpell:disable

def ask_stockfish(board, stockfish_path, move_time_ms=1000):
    """Közvetlen UCI kommunikáció a Stockfish-sel szálkezelés nélkül."""
    # Elindítjuk a Stockfish folyamatot közvetlenül
    process = subprocess.Popen(
        stockfish_path,
        stdin=subprocess.PIPE,
        stdout=subprocess.PIPE,
        stderr=subprocess.PIPE,
        text=True
    )
    
    # UCI protokoll inicializálása
    process.stdin.write("uci\n")
    process.stdin.write("isready\n")
    
    # Átadjuk a jelenlegi táblaállást FEN formátumban
    process.stdin.write(f"position fen {board.fen()}\n")
    
    # Megkérjük, hogy gondolkozzon X ezredmásodpercig
    process.stdin.write(f"go movetime {move_time_ms}\n")
    process.stdin.flush()
    
    best_move = None
    # Olvassuk a Stockfish válaszát, amíg meg nem kapjuk a legjobb lépést
    while True:
        line = process.stdout.readline().strip()
        if line.startswith("bestmove"):
            # A sor formátuma pl.: "bestmove e2e4 ponder e7e5"
            best_move = line.split()[1]
            break
            
    # Bezárjuk a folyamatot, hogy ne egye a memóriát
    process.terminate()
    return best_move

def main():
    # 1. ADD MEG A STOCKFISH PONTOS ÚTVONALÁT!
    stockfish_path = "IDE_MÁSOLD_A_STOCKFISH_FÁJL_ÚTVONALÁT"

    # Sakkbábla inicializálása
    board = chess.Board()
    
    print("Sakk MI játék indítása (Biztonságos, szálmentes mód)!")
    print("A lépéseket SAN formátumban add meg (pl.: e4, Nf3, d5).")
    print("A játékból a 'quit' beírásával léphetsz ki.\n")

    human_is_white = True 

    while not board.is_game_over():
        print("-" * 40)
        print(board)
        print("-" * 40)

        if board.turn == human_is_white:
            move_input = input("Te lépsz: ").strip()
            if move_input.lower() == 'quit':
                break
                
            try:
                move = board.parse_san(move_input) if len(move_input) < 5 else board.parse_uci(move_input)
                if move in board.legal_moves:
                    board.push(move)
                else:
                    print("Szabálytalan lépés! Próbáld újra.")
            except ValueError:
                print("Érvénytelen formátum! Használj e4-et vagy e2e4-et.")
        else:
            print("Stockfish gondolkodik...")
            try:
                # Meghívjuk a saját, szálmentes Stockfish függvényünket
                ai_move_str = ask_stockfish(board, stockfish_path, move_time_ms=1000)
                move = chess.Move.from_uci(ai_move_str)
                
                print(f"Stockfish lépése: {move}")
                board.push(move)
            except Exception as e:
                print(f"\nHiba történt a Stockfish hívása közben: {e}")
                print("Ellenőrizd, hogy a Stockfish útvonala pontos-e!")
                break

    print("\n" + "="*10 + " JÁTÉK VÉGE " + "="*10)
    print(board)
    print(f"Eredmény: {board.result()}")

if __name__ == "__main__":
    main()
---------------
Válaszok;
  Sakk MI jatek inditasa (Biztonsogos, szalmentes mod)!
A lepeseket SAN formatumban add meg (pl.: e4, Nf3, d5).
A jatekbol a 'quit' beirasaval lephetsz ki.
---------------------------------------- r n b q k b n r p p p p p p p p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . P P P P P P P P R N B Q K B N R ---------------------------------------- Te lepsz:
     
        # Predikció (Mit tippel most a MI?)


----------------------------------------
r n b q k b n r
p p p p p p p p
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
P P P P P P P P
R N B Q K B N R
----------------------------------------
Te lepsz: e4
----------------------------------------
r n b q k b n r
p p p p p p p p
. . . . . . . .
. . . . . . . .
. . . . P . . .
. . . . . . . .
P P P P . P P P
R N B Q K B N R
----------------------------------------
Stockfish gondolkodik...

----------------------------------------
r n b q k b n r
p p p p   p p p
. . . . . . . .
. . . . p . . .
. . . . p . . .
. . . . . . . .
P P P P   P P P
R N B Q K B N R
----------------------------------------
Te lepsz: e4
----------------------------------------
r n b q k b n r
p p p p  p p p
. . . . . . . .
. . . p p . . .
. . . p P . . . . . . . . . . . P P P . P P P R N B Q K B N R ---------------------------------------- Stockfish gondolkodik... r n b q k b n r p p p p p p p . . . . . . . . . . . . p . . .
. . . p p . . . . . . . . . . . P P P . P P P R N B Q K B N R Eredmeny: * ** Process exited - Return Code: 0 ** ========== JaTeK VeGE ========== r n b q k b n r p p p p p p p p . . . . . . . . . . . p p . . . . . . p p . . . . . . . . N . . P P P P . P P P R N B Q K B R Eredmeny: *

Ingatlanbecslés AI segítségével python nyelven

Írtam egy python programot, ami a mesterséges intelligenciát modellezi és a gépi tanulást segítő alkalmazás. Egy mesterséges intelligenciát és gépi tanulást bemutató programhoz a legjobb kiindulópont egy lineáris regressziós modell elkészítése a semmiből (külső könyvtárak, mint a scikit-learn nélkül). Ez tökéletesen szemlélteti a gépi tanulás alapjait: a modell adatokat kap, hibát számol, majd a gradiens süllyedés (gradient descent) algoritmus segítségével "tanul", azaz módosítja a saját paramétereit. Egy ingatlan becslő Python kódot írtam, ami AI-t modellez a ház mérete alapján, értékbecsélt végez. A gépi tanulás megértését szolgűlja a z adatok fontossága: A program az X és Y listákból indul ki. Minél pontosabbak és tisztábbak ezek az adatok, annál jobb lesz az AI. A "Tippelés" mechanizmusa: A modell nem bonyolult logikai szabályokat követ, hanem egy matematikai függvényt (y=w⋅x+b). Hiba visszacsatolás (Loss Function): A program méri, hogy mekkorát tévedett a valósághoz képest (error). Gradiens süllyedés: A w_gradient és b_gradient változók határozzák meg, hogy a súlyokat növelni vagy csökkenteni kell-e a hiba minimalizálásához. Tanulási ráta (learning_rate): Ha túl nagyra veszed, a modell "túltanul" vagy összeomlik, ha túl kicsi, örökké tart a tanítás. Nyugodtan kísérletezhetsz az átírásával!

--- Tanítás ELŐTTI állapot ---
Kezdeti súly (w): 0.6303
Kezdeti eltolás (b): 0.4796

Python program forrása;

import random

# 1. Tanulhato adatok (Alapterület négyzetméterben -> Ár millió Ft-ban)
# x = terület, y = valós ár
X = [40, 50, 60, 70, 80, 90, 100, 120]
Y = [22, 28, 32, 38, 42, 49,  55,  64]

# 2. A Modell paramétereinek inicializálása (véletlenszerűen)
# A képletünk: becsült_ár = w * terület + b
w = random.uniform(0.0, 1.0)  # súly (weight)
b = random.uniform(0.0, 1.0)  # eltolás (bias)

# Hiperparaméterek
learning_rate = 0.0001  # Tanulási ráta (milyen gyorsan változzanak a paraméterek)
epochs = 5000           # Hány alkalommal fusson át az összes adaton (tanítási ciklus)

print("--- Tanítás ELŐTTI állapot ---")
print(init_w := f"Kezdeti súly (w): {w:.4f}")
print(init_b := f"Kezdeti eltolás (b): {b:.4f}")
print("-" * 30)

# 3. Önfejlesztés, autodidakta folyamat (Machine Learning)
for epoch in range(epochs):
    w_gradient = 0
    b_gradient = 0
    total_error = 0
    n = len(X)
    
    for i in range(n):
        x = X[i]
        y_valos = Y[i]
        
        # Predikció (Mit tippel most a MI?)
        y_becsult = w * x + b
        
        # Hiba számítása (Valós és becsült érték különbsége)
        error = y_becsult - y_valos
        total_error += error ** 2  # Négyzetes hiba a teljesítmény követéséhez
        
        # Gradiensek (milyen irányba és mennyivel kell módosítani w-t és b-t)
        w_gradient += (2/n) * error * x
        b_gradient += (2/n) * error
        
    # Paraméterek frissítése (A lényegi "tanulás")
    w = w - (learning_rate * w_gradient)
    b = b - (learning_rate * b_gradient)
    
    # Állapotjelentés minden 1000. ciklusban
    if (epoch + 1) % 1000 == 0:
        Átlagos_hiba = total_error / n
        print(f"Ciklus {epoch+1}/{epochs} -> Átlagos hiba: {Átlagos_hiba:.4f}")

print("-" * 30)
print("--- Tanítás UTÁNI állapot ---")
print(f"Optimalizált súly (w): {w:.4f}")
print(f"Optimalizált eltolás (b): {b:.4f}")
print("-" * 30)

# 4. Tesztelés / Predikció új adatokkal
print("--- MI Tesztelése (Predikció) ---")
uj_hazak = [45, 75, 110] # Olyan méretek, amik nem voltak a tanító adatok között

for haz in uj_hazak:
    tippelt_ar = w * haz + b
    print(f"Egy {haz} m²-es ház becsült ára: {tippelt_ar:.2f} millió Ft.")

A program minden lefutásból tanul.

--- Tanítás ELŐTTI állapot ---
Kezdeti súly (w): 0.1027
Kezdeti eltolás (b): 0.8969
------------------------------
Ciklus 1000/5000 -> Átlagos hiba: 0.5184
Ciklus 2000/5000 -> Átlagos hiba: 0.5184
Ciklus 3000/5000 -> Átlagos hiba: 0.5183
Ciklus 4000/5000 -> Átlagos hiba: 0.5183
Ciklus 5000/5000 -> Átlagos hiba: 0.5182 
------------------------------
--- Tanítás UTÁNI állapot ---
Optimalizált súly (w): 0.5295
Optimalizált eltolás (b): 0.8902
------------------------------
--- MI Tesztelése (Predikció) ---
Egy 45 m²-es ház becsült ára: 24.72 millió Ft.
Egy 75 m²-es ház becsült ára: 40.60 millió Ft.
Egy 110 m²-es ház becsült ára: 59.13 millió Ft.



A legrégebben kihúzott 21 azám a skandináv lottóban

# A kronologiailag rendezett szamok listaja
kihuzott_szamok = [
    1, 3, 4, 7, 9, 14, 20, 1, 5, 13, 23, 25, 32, 33,
    5, 6, 12, 13, 23, 24, 35, 15, 17, 22, 24, 25, 27,
    33, 4, 11, 12, 14, 17, 24, 29, 8, 12, 13, 17, 18,
    32, 33, 1, 3, 8, 14, 17, 22, 35, 1, 2, 9, 11, 18,
    29, 30, 2, 4, 9, 11, 26, 31, 32, 8, 15, 23, 25, 26,
    30, 34, 4, 8, 18, 20, 22, 23, 30, 2, 4, 8, 11, 26,
    27, 28, 9, 13, 16, 24, 25, 29, 30, 7, 12, 16, 25,
    30, 32, 33, 2, 13, 14, 27, 28, 29, 31, 2, 4, 12,
    21, 25, 30, 33, 3, 4, 12, 14, 15, 19, 30, 9, 14,
    15, 17, 19, 21, 23, 4, 8, 9, 12, 18, 22, 23, 7,
    10, 17, 20, 22, 23, 29, 4, 7, 8, 10, 11, 14, 25,
    1, 7, 10, 18, 20, 22, 35, 5, 7, 8, 14, 22, 27, 29,
    1, 3, 7, 17, 19, 21, 28, 1, 2, 4, 8, 11, 15, 22,
    5, 24, 25, 27, 31, 32, 33, 9, 10, 11, 13, 15, 23,
    30, 2, 7, 9, 11, 21, 30, 31, 1, 6, 7, 10, 13, 15,
    24, 2, 5, 6, 8, 9, 14, 33, 12, 16, 19, 20, 25,
    29, 33, 3, 12, 13, 14, 15, 21, 26, 10, 14, 22,
    26, 27, 30, 31, 5, 8, 9, 13, 16, 22, 27, 16, 21,
    22, 24, 26, 31, 33, 2, 3, 5, 19, 26, 27, 28, 4,
    5, 7, 8, 14, 18, 30, 5, 15, 22, 23, 28, 32, 33,
    7, 18, 19, 21, 23, 24, 27, 7, 8, 10, 14, 15, 27,
    31, 3, 7, 10, 15, 16, 18, 32, 11, 17, 18, 25,
    26, 29, 35, 5, 10, 20, 24, 27, 30, 31, 2, 10, 13,
    16, 17, 27, 34
]

# Megtalaljuk minden szam elso elofordulasi indexet
elso_elofordulas = {}
for idx, szam in enumerate(kihuzott_szamok):
    if szam not in elso_elofordulas:
        elso_elofordulas[szam] = idx

# Rendezes az elso megjelenes szerint novekvo helyett csokkeno sorrendbe
rendezett_szamok = sorted(elso_elofordulas.items(), key=lambda x: x[1], reverse=True)

# Kivalasztjuk az elso 21 legkisebbi megjelenesu szamot
legkesobbi_szamok = [szam for szam, index in rendezett_szamok[:21]]

print("A legkisebbi 21 kisorsolt szam:")
print(legkesobbi_szamok)

Eredmeny; 31,10,19,21,2,28,16,   34,30,26,11,29,8,18

A kapott számokból kisorsolunk 7 számot

import random

 

# A korábbi kód, ami kiválasztja a legkésőbbi 21 számot

kihuzott_szamok = [

    1, 3, 4, 7, 9, 14, 20, 1, 5, 13, 23, 25, 32, 33,

    5, 6, 12, 13, 23, 24, 35, 15, 17, 22, 24, 25, 27,

    33, 4, 11, 12, 14, 17, 24, 29, 8, 12, 13, 17, 18,

    32, 33, 1, 3, 8, 14, 17, 22, 35, 1, 2, 9, 11, 18,

    29, 30, 2, 4, 9, 11, 26, 31, 32, 8, 15, 23, 25, 26,

    30, 34, 4, 8, 18, 20, 22, 23, 30, 2, 4, 8, 11, 26,

    27, 28, 9, 13, 16, 24, 25, 29, 30, 7, 12, 16, 25,

    30, 32, 33, 2, 13, 14, 27, 28, 29, 31, 2, 4, 12,

    21, 25, 30, 33, 3, 4, 12, 14, 15, 19, 30, 9, 14,

    15, 17, 19, 21, 23, 4, 8, 9, 12, 18, 22, 23, 7,

    10, 17, 20, 22, 23, 29, 4, 7, 8, 10, 11, 14, 25,

    1, 7, 10, 18, 20, 22, 35, 5, 7, 8, 14, 22, 27, 29,

    1, 3, 7, 17, 19, 21, 28, 1, 2, 4, 8, 11, 15, 22,

    5, 24, 25, 27, 31, 32, 33, 9, 10, 11, 13, 15, 23,

    30, 2, 7, 9, 11, 21, 30, 31, 1, 6, 7, 10, 13, 15,

    24, 2, 5, 6, 8, 9, 14, 33, 12, 16, 19, 20, 25,

    29, 33, 3, 12, 13, 14, 15, 21, 26, 10, 14, 22,

    26, 27, 30, 31, 5, 8, 9, 13, 16, 22, 27, 16, 21,

    22, 24, 26, 31, 33, 2, 3, 5, 19, 26, 27, 28, 4,

    5, 7, 8, 14, 18, 30, 5, 15, 22, 23, 28, 32, 33,

    7, 18, 19, 21, 23, 24, 27, 7, 8, 10, 14, 15, 27,

    31, 3, 7, 10, 15, 16, 18, 32, 11, 17, 18, 25,

    26, 29, 35, 5, 10, 20, 24, 27, 30, 31, 2, 10, 13,

    16, 17, 27, 34

]

 

# Megtaláljuk minden szám első előfordulási indexét

elso_elofordulas = {}

for idx, szam in enumerate(kihuzott_szamok):

    if szam not in elso_elofordulas:

        elso_elofordulas[szam] = idx

 

# Rendezés a legkésőbbi megjelenés szerint (csökkenő sorrend)

rendezett_szamok = sorted(elso_elofordulas.items(), key=lambda x: x[1], reverse=True)

 

# Kiválasztjuk az első 21 legkésőbbi megjelenésű számot

legkesobbi_szamok = [szam for szam, index in rendezett_szamok[:21]]

 

# Véletlenszerűen kiválasztunk 7 számot a legkésőbbi 21-ből

veletlen_7 = random.sample(legkesobbi_szamok, 7)

 

print("A kiválasztott 7 véletlenszerű szám a legkésőbbi 21 közül:")

print(veletlen_7)

2026. május 27., szerda

Top Secret-password-RSA

A Python egyszerű szintaxisa és kiterjedt könyvtárai révén a hackerek, kiberbiztonsági szakemberek és a nyomozók „titkos fegyvere” is egyben. Láthatatlan folyamatok automatizálására, biztonsági tesztelésre és adatgyűjtésre használják.A Python leggyakoribb titkos és rejtett műveletei:Biztonsági rések kutatása: Behatolásteszteléssel (Penetration Testing) feltérképezhetők a helyi hálózatok vagy weboldalak gyenge pontjai.Adatbányászat és Scraping: Titkos webes adatgyűjtés nyilvános, de nehezen elérhető forrásokból, például rejtett API-k vagy automatizált böngészők segítségével.Hálózati forgalom elemzése: Csomagok elfogása és dekódolása (Packet Sniffing) hálózati anomáliák vagy adatszivárgás észlelésére.Rejtett folyamatok automatizálása: Ismétlődő, monoton feladatok láthatatlan ütemezése és végrehajtása a háttérben.Ezeket a technikákat jellemzően a kiberbiztonságban (etikus hackelés) és IT-üzemeltetésben alkalmazzák. A rendszergazdák programozási tudásukat informatikai rendszerük tesztelésére is felhasználhatják.

Ezt a programot oktatási céllal hoztam létre!




------------------------

import random
import string
from itertools import product

# ========== RSA ALAPFOGALMAK ==========
def gcd(a, b):
    while b:
        a, b = b, a % b
    return a

def mod_inverse(e, phi):
    def extended_gcd(a, b):
        if a == 0:
            return b, 0, 1
        gcd_val, x1, y1 = extended_gcd(b % a, a)
        x = y1 - (b // a) * x1
        y = x1
        return gcd_val, x, y
    
    _, x, _ = extended_gcd(e % phi, phi)
    return (x % phi + phi) % phi

def is_prime(n):
    if n < 2:
        return False
    if n == 2:
        return True
    if n % 2 == 0:
        return False
    for i in range(3, int(n**0.5) + 1, 2):
        if n % i == 0:
            return False
    return True

def generate_prime(start=10000, end=50000):
    while True:
        num = random.randint(start, end)
        if is_prime(num):
            return num

# ========== RSA KULCSPAR GENERALASA ==========
def generate_rsa_keypair():
    p = generate_prime()
    q = generate_prime()
    while q == p:
        q = generate_prime()
    
    n = p * q
    phi = (p - 1) * (q - 1)
    
    e = 65537
    while e < phi and gcd(e, phi) != 1:
        e += 1
    
    d = mod_inverse(e, phi)
    
    return (e, n), (d, n), p, q

# ========== RSA TITKOSITAS KARAKTERENKENT ==========
def rsa_encrypt_char(public_key, char):
    """RSA titkositas egy karakterre"""
    e, n = public_key
    char_int = ord(char)
    return pow(char_int, e, n)

def rsa_encrypt(public_key, plaintext):
    """RSA titkositas minden karakterre"""
    return [rsa_encrypt_char(public_key, c) for c in plaintext]

# ========== RSA DEKODOLAS KARAKTERENKENT ==========
def rsa_decrypt_char(private_key, ciphertext_char):
    """RSA dekodolas egy karakterre"""
    d, n = private_key
    decrypted_int = pow(ciphertext_char, d, n)
    return chr(decrypted_int)

def rsa_decrypt(private_key, ciphertext_list):
    """RSA dekodolas minden karakterre"""
    return ''.join(rsa_decrypt_char(private_key, c) for c in ciphertext_list)

# ========== 5 KARAKTERES JELSZO BRUTE-FORCE ==========
def brute_force_5char(encrypted_list, private_key):
    characters = string.ascii_lowercase + string.ascii_uppercase + string.digits
    d, n = private_key
    
    total_combinations = len(characters) ** 5
    print("Karakterkeszlet:", len(characters), "karakter")
    print("Osszes kombinacio:", total_combinations)
    print("Kereses kezdese...\n")
    
    # Dekodoljuk az eredeti jelszot
    true_password = rsa_decrypt(private_key, encrypted_list)
    print("Cel jelszo (dekodolva):", true_password)
    print()
    
    max_attempts = 10000
    attempts = 0
    
    for combination in product(characters, repeat=5):
        attempts += 1
        guess = ''.join(combination)
        
        if attempts % 5000 == 0:
            print("Proba:", attempts, "- Aktuális:", guess)
        
        if attempts >= max_attempts:
            print("\nMegallitas", max_attempts, "probalkozas utan")
            break
        
        if guess == true_password:
            print("\nMEGLELVE:", guess, "(", attempts, "probalkozas)")
            return guess, attempts
    
    print("\nJelszo nem talalhato az elso", min(attempts, max_attempts), "probalkozasban")
    return None, attempts

# ========== TELJES PÉDA ==========
if __name__ == "__main__":
    print("=" * 60)
    print("RSA TITKOSITAS es 5 KARAKTERES JELSZO BRUTE-FORCE")
    print("=" * 60)
    
    print("\n[1] RSA kulcspár generálasa...")
    public_key, private_key, p, q = generate_rsa_keypair()
    e, n = public_key
    d, n = private_key
    print("    Publikus kulcs (e, n):", e, ",", n)
    print("    Privát kulcs (d, n):", d, ",", n)
    print("    Prímek: p =", p, ", q =", q)
    print("    n = p * q =", p * q, "(elég nagy a 5 karaktershoz)")
    
    print("\n[2] 5 karakteres jelszó titkosítása...")
    secret_password = "ab12X"
    print("    Eredeti jelszó:", secret_password)
    
    encrypted = rsa_encrypt(public_key, secret_password)
    ---------------------
pitonimport random
import string
from itertools import product

def gcd(a, b):
    while b:
        a, b = b, a % b
    return a

def mod_inverse(e, phi):
    def extended_gcd(a, b):
        if a == 0:
            return b, 0, 1
        gcd_val, x1, y1 = extended_gcd(b % a, a)
        x = y1 - (b // a) * x1
        y = x1
        return gcd_val, x, y
    
    _, x, _ = extended_gcd(e % phi, phi)
    return (x % phi + phi) % phi

def is_prime(n):
    if n < 2:
        return False
    if n == 2:
        return True
    if n % 2 == 0:
        return False
    for i in range(3, int(n**0.5) + 1, 2):
        if n % i == 0:
            return False
    return True

def generate_prime(start=10000, end=50000):
    while True:
        num = random.randint(start, end)
        if is_prime(num):
            return num

def generate_rsa_keypair():
    p = generate_prime()
    q = generate_prime()
    while q == p:
        q = generate_prime()
    
    n = p * q
    phi = (p - 1) * (q - 1)
    
    e = 65537
    while e < phi and gcd(e, phi) != 1:
        e += 1
    
    d = mod_inverse(e, phi)
    
    return (e, n), (d, n), p, q

def rsa_encrypt_char(public_key, char):
    e, n = public_key
    m = ord(char)
    return pow(m, e, n)

def rsa_encrypt(public_key, plaintext):
    return [rsa_encrypt_char(public_key, c) for c in plaintext]

def rsa_decrypt_char(private_key, ciphertext_char):
    d, n = private_key
    decrypted_int = pow(ciphertext_char, d, n)
    return chr(decrypted_int)

def rsa_decrypt(private_key, ciphertext_list):
    return ''.join(rsa_decrypt_char(private_key, c) for c in ciphertext_list)

def brute_force_password(encrypted_list, public_key, max_attempts=100000):
    characters = string.ascii_lowercase + string.ascii_uppercase + string.digits
    
    total_combinations = len(characters) ** 5
    print("Karakterkeszlet:", len(characters), "karakter")
    print("Osszes kombinacio:", total_combinations)
    print("Keresés kezdése...\n")
    
    attempts = 0
    for combination in product(characters, repeat=5):
        attempts += 1
        guess = ''.join(combination)
        
        if attempts % 50000 == 0:
            print("Proba:", attempts, "- Aktualis:", guess)
        
        guess_encrypted = [rsa_encrypt_char(public_key, c) for c in guess]
        
        if guess_encrypted == encrypted_list:
            print("\nMEGLELVE:", guess, "(" + str(attempts) + " probalkozas)")
            return guess, attempts
        
        if attempts >= max_attempts:
            print("\nMegallitva", max_attempts, "probalkozas utan")
            break
    
    return None, attempts

if __name__ == "__main__":
    print("=" * 70)
    print("RSA JELSZO VISSZAFEJTES PROGRAM")
    print("=" * 70)
    
    print("\n[1] RSA kulcspar generalasa...")
    public_key, private_key, p, q = generate_rsa_keypair()
    e, n = public_key
    d, n = private_key
    print("    Publikus kulcs (e, n):", e, ",", n)
    print("    Privat kulcs (d, n):", d, ",", n)
    print("    Primek: p =", p, ", q =", q)
    
    print("\n[2] Jelszo titkositasa...")
    password = "ab12X"
    print("    Eredeti jelszo:", password)
    
    encrypted = rsa_encrypt(public_key, password)
    print("    Titkosított ertekek:", encrypted)
    
    print("\n[3] RSA visszafejtes (privat kulccsal)...")
    decrypted = rsa_decrypt(private_key, encrypted)
    print("    Visszafejtett jelszo:", decrypted)
    print("    Sikeres:", decrypted == password)
    
    print("\n[4] Brute-force visszafejtes (nincs privat kulcs)...")
    print("    Megjegyzes: Csak az elso 10000 probalkozast csinalom meg.\n")
    
    result, attempts = brute_force_password(encrypted, public_key, max_attempts=10000)
    
    print("\n" + "=" * 70)
    if result:
        print("SIKER: Jelszo visszafejtve:", result)
    else:
        print("INFO: Jelszo nem lett megtalalva (korlatozott probalkozas)")
    print("=" * 70)
-------------------
Packet Sniffing példa
------------------
import socket
import os
import struct

def get_protocol_name(protocol):
    protocols = {
        1: "ICMP",
        6: "TCP",
        17: "UDP",
        47: "GRE",
        50: "ESP",
        51: "AH",
        89: "OSPF",
        132: "SCTP"
    }
    return protocols.get(protocol, "ISMERETLEN")

def main():
    host = '0.0.0.0'
    
    if os.name == 'nt':
        socket_protocol = socket.IPPROTO_IP
        print("Windows rendszer felismerve")
    else:
        socket_protocol = socket.IPPROTO_ICMP
        print("Linux/Unix rendszer felismerve")
    
    sniffer = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket_protocol)
    sniffer.bind((host, 0))
    sniffer.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1)
    
    if os.name == 'nt':
        sniffer.ioctl(socket.SIO_RCVALL, socket.RCVALL_ON)
    
    print("=" * 70)
    print("EGYSZERU PACKET SNIFFER")
    print("=" * 70)
    print("Csomagok figyelem kezdese... (Ctrl+C a leallitashoz)")
    print("=" * 70)
    
    try:
        while True:
            buffer, addr = sniffer.recvfrom(65565)
            
            ip_header = buffer[0:20]
            iph = struct.unpack('!BBHHHBBH4s4s', ip_header)
            
            version_ihl = iph[0]
            version = version_ihl >> 4
            ihl = version_ihl & 0xF
            iph_length = ihl * 4
            
            protocol = iph[6]
            s_addr = socket.inet_ntoa(iph[8])
            d_addr = socket.inet_ntoa(iph[9])
            
            protocol_name = get_protocol_name(protocol)
            
            print("\n" + "-" * 70)
            print("FORRAS IP:", s_addr)
            print("CEL IP:", d_addr)
            print("PROTOKOLL:", protocol_name, "(" + str(protocol) + ")")
            print("CSOMAP MERET:", len(buffer), "byte")
            
    except KeyboardInterrupt:
        print("\n\nPacket sniffer leallitva")
        
        if os.name == 'nt':
            sniffer.ioctl(socket.SIO_RCVALL, socket.RCVALL_OFF)

if __name__ == '__main__':
    main()A javítások:
•Minden ékezetes betű kivéve (pl. "VERZIÓ" → "VERZI", "KÖNYVTÁRRAL" → "KONYVTARRAL")

•Nincs semmilyen komment a kód után

•Tiszta Python kód

Másold be és futtasd!



hiba Linux/Unix rendszer felismerve
Traceback (most recent call last):
File "/home/repl912/secret.py", line 72, in <module>
main()
File "/home/repl912/secret.py", line 28, in main
sniffer = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket_protocol)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/socket.py", line 233, in __init__
_socket.socket.__init__(self, family, type, proto, fileno)
PermissionError: [Errno 1] Operation not permitted


** Process exited - Return Code: 1 **Továbbiak megjelenítése
A hibaforrás és a hibai hozzáállás megértéseA hiba oka, hogy a RAW socket-hez root (sudo) jogosultság kell. Mivel a Pyodide/jelenvő környezetben ez nem lehetséges, itt egy alternatív Packet Sniffer, ami nem igényel RAW socketet:

pythonimport socket
import struct
import time

class PassivePacketMonitor:
    """Egyszeru passziv csomag monitor - nem kell sudo"""
    
    def __init__(self):
        self.packet_count = 0
        self.tcp_count = 0
        self.udp_count = 0
        self.icmp_count = 0
    
    def get_local_ip(self):
        """Local IP cimer kimasolasa"""
        try:
            with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as s:
                s.connect(("8.8.8.8", 80))
                return s.getsockname()[0]
        except:
            return "127.0.0.1"
    
    def analyze_connection(self):
        """Aktiv kapcsolatok elemzese (netstat helyett)"""
        print("=" * 70)
        print("PASSZIV CSOMAG MONITOR")
        print("=" * 70)
        print("Local IP:", self.get_local_ip())
        print("Figyeld a halozati aktivast...")
        print("Ctrl+C a leallitashoz")
        print("=" * 70)
    
    def create_test_connection(self, host="8.8.8.8", port=53):
        """Teszt kapcsolodas keszitese"""
        try:
            sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
            sock.settimeout(2)
            sock.sendto(b"test", (host, port))
            self.packet_count += 1
            sock.close()
            return True
        except:
            return False
    
    def monitor_network_activity(self):
        """Halozati aktivas monitorozasa"""
        start_time = time.time()
        
        try:
            while True:
                # Verver interval
                time.sleep(1)
                
                # Teszt csomag kuldes
                if self.create_test_connection():
                    self.udp_count += 1
                    self.packet_count += 1
                
                elapsed = time.time() - start_time
                
                print("\n[" + str(int(elapsed)) + "s] Total packets:", self.packet_count)
                print("  UDP:", self.udp_count)
                print("  TCP:", self.tcp_count)
                print("  ICMP:", self.icmp_count)
                
        except KeyboardInterrupt:
            print("\n\nMonitor leallitva")
            print("Total packets captured:", self.packet_count)

def simple_port_scanner():
    """Egyszeru port scanner (aktivan kutat)"""
    target = input("\nTarget IP cimer (pl. 192.168.1.1): ").strip()
    
    if not target:
        target = "127.0.0.1"
    
    print("=" * 70)
    print("EGYSZERU PORT SCANNER")
    print("=" * 70)
    print("Target:", target)
    print("Portok szurkese...")
    print("=" * 70)
    
    open_ports = []
    
    for port in range(1, 1025):
        try:
            sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            sock.settimeout(0.1)
            result = sock.connect_ex((target, port))
            
            if result == 0:
                print("Port", port, "NYITOTT")
                open_ports.append(port)
            
            sock.close()
        except:
            pass
    
    print("\n" + "=" * 70)
    print("NYITOTT PORTOK:", len(open_ports))
    if open_ports:
        print(open_ports)
    print("=" * 70)

def network_info():
    """Halozati informaciok"""
    print("=" * 70)
    print("HALOZATI INFORMACIOK")
    print("=" * 70)
    
    hostname = socket.gethostname()
    local_ip = socket.gethostbyname(hostname)
    
    print("Hostname:", hostname)
    print("Local IP:", local_ip)
    
    try:
        with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as s:
            s.connect(("8.8.8.8", 80))
            gateway_ip = s.getsockname()[0]
            print("Gateway IP:", gateway_ip)
    except:
        pass
    
    print("=" * 70)

def main():
    print("=" * 70)
    print("HALOZATI ES PACKET MONITOR ESZKOCZ")
    print("=" * 70)
    print("\nMenu:")
    print("1. Passziv csomag monitor (nem kell sudo)")
    print("2. Port scanner")
    print("3. Halozati informaciok")
    print("4. Kilepas")
    
    choice = input("\nVazlas (1-4): ").strip()
    
    if choice == "1":
        monitor = PassivePacketMonitor()
        monitor.analyze_connection()
        monitor.monitor_network_activity()
    
    elif choice == "2":
        simple_port_scanner()
    
    elif choice == "3":
        network_info()
    
    elif choice == "4":
        print("Kilepas...")
    
    else:
        print("Hibas valasztas!")

if __name__ == '__main__':
    main()
------------------------------
import socket
import os
import struct

def get_protocol_name(protocol):
    protocols = {
        1: "ICMP",
        6: "TCP",
        17: "UDP",
        47: "GRE",
        50: "ESP",
        51: "AH",
        89: "OSPF",
        132: "SCTP"
    }
    return protocols.get(protocol, "ISMERETLEN")

def main():
    host = '0.0.0.0'
    
    if os.name == 'nt':
        socket_protocol = socket.IPPROTO_IP
        print("Windows rendszer felismerve")
    else:
        socket_protocol = socket.IPPROTO_ICMP
        print("Linux/Unix rendszer felismerve")
    
    sniffer = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket_protocol)
    sniffer.bind((host, 0))
    sniffer.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1)
    
    if os.name == 'nt':
        sniffer.ioctl(socket.SIO_RCVALL, socket.RCVALL_ON)
    
    print("=" * 70)
    print("EGYSZERU PACKET SNIFFER")
    print("=" * 70)
    print("Csomagok figyelem kezdese... (Ctrl+C a leallitashoz)")
    print("=" * 70)
    
    try:
        while True:
            buffer, addr = sniffer.recvfrom(65565)
            
            ip_header = buffer[0:20]
            iph = struct.unpack('!BBHHHBBH4s4s', ip_header)
            
            version_ihl = iph[0]
            version = version_ihl >> 4
            ihl = version_ihl & 0xF
            iph_length = ihl * 4
            
            protocol = iph[6]
            s_addr = socket.inet_ntoa(iph[8])
            d_addr = socket.inet_ntoa(iph[9])
            
            protocol_name = get_protocol_name(protocol)
            
            print("\n" + "-" * 70)
            print("FORRAS IP:", s_addr)
            print("CEL IP:", d_addr)
            print("PROTOKOLL:", protocol_name, "(" + str(protocol) + ")")
            print("CSOMAP MERET:", len(buffer), "byte")
            
    except KeyboardInterrupt:
        print("\n\nPacket sniffer leallitva")
        
        if os.name == 'nt':
            sniffer.ioctl(socket.SIO_RCVALL, socket.RCVALL_OFF)

if __name__ == '__main__':
    main()
------------------------------
import socket
import os
import struct

def main():
    # Host cím (Linuxon üres string = minden interface)
    host = '0.0.0.0'
    
    if os.name == 'nt':
        socket_protocol = socket.IPPROTO_IP
        print("Windows rendszer felismerve")
    else:
        socket_protocol = socket.IPPROTO_ICMP
        print("Linux/Unix rendszer felismerve")
    
    # RAW socket létrehozása
    sniffer = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket_protocol)
    sniffer.bind((host, 0))
    
    # IP fejléc beolvasása
    sniffer.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1)
    
    if os.name == 'nt':
        sniffer.ioctl(socket.SIO_RCVALL, socket.RCVALL_ON)
    
    print("=" * 70)
    print("EGYSZERU PACKET SNIFFER")
    print("=" * 70)
    print("Csomagok catchesése kezdese... (Ctrl+C a leallitashoz)")
    print("=" * 70)
    
    try:
        while True:
            # Csomag fogadása (max 65565 byte)
            buffer, addr = sniffer.recvfrom(65565)
            
            # IP fejléc dekódolása (első 20 byte)
            ip_header = buffer[0:20]
            iph = struct.unpack('!BBHHHBBH4s4s', ip_header)
            
            version_ihl = iph[0]
            version = version_ihl >> 4
            ihl = version_ihl & 0xF
            iph_length = ihl * 4
            
            protocol = iph[6]
            s_addr = socket.inet_ntoa(iph[8])
            d_addr = socket.inet_ntoa(iph[9])
            
            # Protokoll neve
            protocol_name = get_protocol_name(protocol)
            
            print("\n" + "-" * 70)
            print("FORRAS IP:", s_addr)
            print("CÉL IP:", d_addr)
            print("PROTOKOLL:", protocol_name, "(" + str(protocol) + ")")
            print("CSOMAG HELY:", len(buffer), "byte")
            
    except KeyboardInterrupt:
        print("\n\nPacket sniffer leallitva")
        
        if os.name == 'nt':
            sniffer.ioctl(socket.SIO_RCVALL, socket.RCVALL_OFF)

def get_protocol_name(protocol):
    """Protokoll szám neve"""
    protocols = {
        1: "ICMP",
        6: "TCP",
        17: "UDP",
        47: "GRE",
        50: "ESP",
        51: "AH",
        89: "OSPF",
        132: "SCTP"
    }
    return protocols.get(protocol, "ISMERETLEN")

if __name__ == '__main__':
    main()2. VERZIÓ: Fejlett Packet Sniffer (scapy könyvtárral, TÖBB PROTOKOLL)
először telepíteni kell a scapy-t:
bashpip install scapyA fejlett Packet Sniffer kód:
pitonfrom scapy.all import *
import socket
import datetime

def get_local_ip():
    """Local IP cím kimasolasa"""
    with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as s:
        s.connect(("8.8.8.8", 80))
        return s.getsockname()[0]

def packet_callback(pkt):
    """Minden csomag feldolgozasa"""
    
    # Timestamp
    timestamp = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    
    # TCP csomagok
    if pkt.haslayer(TCP) and pkt.haslayer(IP):
        direction = "IN" if pkt[IP].dst == local_ip else "OUT"
        print("[%s] TCP-%s | SRC: %s:%d -> DST: %s:%d | LEN: %d bytes" % (
            timestamp, direction,
            pkt[IP].src, pkt.sport,
            pkt[IP].dst, pkt.dport,
            len(pkt[TCP])
        ))
    
    # UDP csomagok
    elif pkt.haslayer(UDP) and pkt.haslayer(IP):
        direction = "IN" if pkt[IP].dst == local_ip else "OUT"
        print("[%s] UDP-%s | SRC: %s:%d -> DST: %s:%d | LEN: %d bytes" % (
            timestamp, direction,
            pkt[IP].src, pkt.sport,
            pkt[IP].dst, pkt.dport,
            len(pkt[UDP])
        ))
    
    # ICMP csomagok (ping)
    elif pkt.haslayer(ICMP) and pkt.haslayer(IP):
        direction = "IN" if pkt[IP].dst == local_ip else "OUT"
        print("[%s] ICMP-%s | SRC: %s -> DST: %s | TYPE: %d" % (
            timestamp, direction,
            pkt[IP].src, pkt[IP].dst,
            pkt[ICMP].type
        ))

def main():
    local_ip = get_local_ip()
    
    print("=" * 80)
    print("FEJLETT PACKET SNIFFER (SCAPY)")
    print("=" * 80)
    print("Local IP cimer:", local_ip)
    print("Hallgat protokollok: TCP, UDP, ICMP")
    print("Csomagok catchesése kezdese... (Ctrl+C a leallitashoz)")
    print("=" * 80)
    
    try:
        # Csomagok hallgatas
        sniff(prn=packet_callback, store=0)
    except KeyboardInterrupt:
        print("\n\nPacket sniffer leallitva")

if __name__ == '__main__':
    main()Futtatás:
bash# 1. verzió (nincs telepítés):
sudo python packet_sniffer_simple.py

# 2. verzió (scapy):
sudo pip install scapy
sudo python packet_sniffer_scapy.py
------------------------------------
Tanulásra és nem büncselekményre készültek a mintaprogramok! A Python programok írása már megkívánja a megfelelő strukturáltságot és a szoftvertervezési alapelvek betartását. A fenntarthatóság, az olvashatóság és a skálázhatóság érdekében a következő bevált gyakorlatokat érdemes alkalmazni. Éremes logikai egységekre, különálló .py fájlokba (pl. adatbázis kezelő, felhasználói felület, üzleti és logika), amelyeket aztán importálsz. Objektumorientált programozás (OOP): Használj osztályokat és objektumokat az adatok és a rajtuk végzett műveletek egységbe zárásához. A csomagcsomagolás révén a nagyobb projekteket rendezd package-ekbe (könyvtárakba), amelyek tartalmaznak egy __init__.py fájlt is az áttekinthetőség érdekében. Virtuális környezetek: Az env vagy venv segítségével izolálhatod a projekt függőségeit, így elkerülheted a verzióütközéseket a különböző rendszerek között.Dependency Management: A pip mellett használj pipenv-et vagy poetry-t a csomagok és verziók stabil kezelésére.Verziókezelés: Minden komplex projekt alapja a Git használata, a kód tárolására pedig a GitHub vagy a GitLab a legideálisabb.Tesztelés: Elengedhetetlen a hibák korai kiszűrésére. A beépített unittest vagy a pytest használatával automatizálhatod a kód tesztelését.Dokumentáció: A kód karbantarthatóságát nagyban segíti, ha a függvényeket és osztályokat elláthatod docstringekkel, vagy használhatod a Sphinx generátort. MVC (Model-View-Controller) minta: Különítheted el az adatokat (Model), a megjelenítést (View) és a felhasználói interakciókat (Controller), ami különösen hasznos asztali vagy webes alkalmazásoknál.Aszinkron programozás: Az asyncio könyvtár használatával hatékonyan kezelheted a párhuzamos feladatokat, például I/O műveleteket vagy webes lekérdezéseket a blokkoló várakozások elkerülésére. 

Rendezésre példa 

lista = [5, 3, 9, 1, 7]

for i in range(len(lista)-1):
    for j in range(i+1, len(lista)):
        print(i, j, lista, end='')
        if lista[i] > lista [j]:
            lista[i], lista[j] = lista[j], lista[i]
            print('!', lista[i], lista[j])
            print('   ', lista)
        else:
            print('')
---------------------------

import matplotlib.pyplot as plt
import numpy as np

# Generate data
x = np.linspace(110, 10, 900)
y1 = np.sin(x) * np.exp(-0.1 * x)
y2 = np.cos(x) * np.exp(-0.1 * x)

# Create figure
fig, ax = plt.subplots(figsize=(8, 5))

ax.plot(x, y1, color='#2563eb', linewidth=2, label='Damped Sine')
ax.plot(x, y2, color='#f59e0b', linewidth=2, label='Damped Cosine')
ax.fill_between(x, y1, y2, alpha=0.1, color='#8b5cf6')

ax.set_title('Damped Oscillations', fontsize=16, fontweight='bold', pad=12)
ax.set_xlabel('Time (s)', fontsize=12)
ax.set_ylabel('Amplitude', fontsize=12)
ax.legend(fontsize=11, loc='upper right')
ax.grid(True, alpha=0.3)
ax.set_facecolor('#fafafa')
fig.tight_layout()

plt.show()

Ez a kód egy Python program, amely matplotlib és numpy könyvtárakat használ egy grafikon létrehozására.

Mit csinál lépésenként:

- numpy segítségével létrehoz egy 900 pontból álló x értéksorozatot 110-től 10-ig.
- Kiszámol két függvényt: egy csillapított szinusz hullámot (y1) és egy csillapított koszinusz hullámot (y2). Ezek mindkettő az x értékek függvényében csökkenő amplitúdójú hullámok.
- matplotlib segítségével készít egy ábrát és egy koordináta-rendszert.
- Megjeleníti a két hullámot különböző színekkel vonalakkal.
- Kitölti az y1 és y2 közötti területet áttetsző színnel.
- Beállítja a címét, az x és y tengely feliratait.
- Megjeleníti a jelmagyarázatot (legendát), bekapcsolja a rácsvonalat, és beállítja az ábra alapszínét.
- Végül megjeleníti az ábrát.
Ez egy szép példája csillapított rezgések vizualizációjának. 
---------------------
h = (tf - t0) / N:
 Kiszámítja a lépésközt az intervallum hossza és a kívánt lépésszám alapján.np.zeros(N + 1): 
Létrehoz egy üres listát (tömböt), ahová lépésről lépésre elmentjük a kiszámított $S$ értékeket.A for ciklus: Ez végzi a "lényegi" munkát. 
Minden lépésben veszi az aktuális $S[j]$ értéket, kiszámítja hozzá a meredekséget a megadott $F$ függvénnyel, megszorozza a $h$ lépésközzel, és ebből kapja meg a következő $S[j+1]$ értéket.Tipp: 
Ha futtatod a kódot, érdemes játszani az N (lépésszám) értékével.
 Ha az N-et megnöveled (például 100-ra), a lépésköz ($h$) kisebb lesz, és az Euler-módszer kék szaggatott vonala szinte tökéletesen rá fog simulni a fekete elméleti görbére!

import matplotlib.pyplot as plt
import numpy as np


def euler_method(F, t0, tf, S0, N):
    """Az Euler-módszer implementációja elsőrendű ODE megoldására.

    Paraméterek:
    F  : függvény - F(t, S) ami a deriváltat (dS/dt) adja vissza
    t0 : float    - kezdeti időpont
    tf : float    - végidőpont
    S0 : float    - kezdeti állapot (S(t0) értéke)
    N  : int      - a lépések száma
    """
    # Lépésköz (h) kiszámítása
    h = (tf - t0) / N

    # Időrács és az állapotok tömbjének előkészítése
    t = np.linspace(t0, tf, N + 1)
    S = np.zeros(N + 1)

    # Kezdeti feltétel beállítása
    S[0] = S0

    # Iteráció az Euler-képlet alapján
    for j in range(N):
        S[j + 1] = S[j] + h * F(t[j], S[j])

    return t, S


# --- TESZTELÉS ÉS VIZUALIZÁCIÓ ---

if __name__ == "__main__":
    # Teszteljük a módszert egy ismert differenciálegyenleten:
    # dS/dt = cos(t), aminek az analitikus megoldása S(t) = sin(t) + C
    # Legyen a kezdeti feltétel S(0) = 0, ekkor S(t) = sin(t)

    def F(t, S):
        return np.cos(t)

    # Paraméterek beállítása
    t0 = 0
    tf = 2 * np.pi  # Egy teljes periódus (0-tól ~6.28-ig)
    S0 = 0  # S(0) = 0
    N = 20  # Lépésszám (próbáld ki 10-zel vagy 100-zal is!)

    # Futtatás
    t_num, S_num = euler_method(F, t0, tf, S0, N)

    # Elméleti (pontos) megoldás a viszonyításhoz
    t_exact = np.linspace(t0, tf, 200)
    S_exact = np.sin(t_exact)

    # Grafikus ábrázolás
    plt.figure(figsize=(10, 6))
    plt.plot(
        t_exact, S_exact, label="Pontos (analitikus) megoldás", color="black"
    )
    plt.plot(
        t_num,
        S_num,
        "bo--",
        label=f"Euler-módszer közelítése (N = {N})",
        alpha=0.7,
    )

    plt.title("Az Euler-módszer működése vs. Pontos megoldás")
    plt.xlabel("t (idő)")
    plt.ylabel("S(t) (állapot)")
    plt.grid(True)
    plt.legend()
    plt.show()



Jelszó generátor készítése, itt egy egyszerű és biztonságos, kifejezetten 38 karakteres jelszót generáló Python program. A beépített secrets modult használja, ami kriptográfiailag biztonságos véletlenszerűséget garantál (így sokkal védettebb jelszavakat generál, mint a sima random!

import secrets
import string


def jelszo_generator(hossz=38):
    # Karakterkészlet: kisbetűk, nagybetűk, számok és írásjelek
    karakterek = string.ascii_letters + string.digits + string.punctuation

    # Biztonságos generálás a megadott hosszúságban
    jelszo = "".join(secrets.choice(karakterek) for _ in range(hossz))

    return jelszo


# Jelszó létrehozása és kiíratása
uj_jelszo = jelszo_generator()
print(f"A generált 38 karakteres jelszó:\n{uj_jelszo}")
print(f"\nHossz ellenőrzése: {len(uj_jelszo)} karakter.")
-------------------------
import numpy as np

# 1. A differenciálegyenlet definíciója: df(t)/dt = F(t, f) = e^(-t)
# Mivel a derivált most nem függ közvetlenül f-től, az f paramétert nem használjuk a képletben.
def F(t, f):
    return np.exp(-t)

# A pontos (analitikus) megoldás a hiba ellenőrzéséhez
def pontos_megoldas(t):
    return -np.exp(-t)

# 2. Paraméterek beállítása a feladat alapján
t0 = 0.0          # Kezdeti időpont
tf = 1.0          # Végpont
h = 0.1           # Lépésköz
f0 = -1.0         # Kezdeti állapotérték: f(0) = -1

# Numerikus rács (időlépések) létrehozása: [0.0, 0.1, 0.2, ..., 1.0]
# A tf + h/2 trükk biztosítja, hogy a lebegőpontos kerekítés miatt a tf is belekerüljön
t = np.arange(t0, tf + h/2, h)
N = len(t) - 1    # Lépések száma

# 3. Tömb előkészítése az S (itt f_num) állapotok tárolására
f_num = np.zeros(len(t))
f_num[0] = f0     # Bolt S0 = S(t0) a tömbben

# 4. Iteratív integrálás az Euler-formula alapján
for j in range(N):
    # Kiszámítás és tárolás a tömbben lépésről lépésre:
    # S(t_{j+1}) = S(t_j) + h * F(t_j, S(t_j))
    f_num[j + 1] = f_num[j] + h * F(t[j], f_num[j])

# --- EREDMÉNYEK MEGJELENÍTÉSE ---

print(f"{'t_j':<6} | {'Euler közelítés':<16} | {'Pontos érték':<14} | {'Abszolút hiba':<14}")
print("-" * 60)

for j in range(len(t)):
    pontos = pontos_megoldas(t[j])
    hiba = abs(f_num[j] - pontos)
    print(f"{t[j]:.1f}   | {f_num[j]:.6f}         | {pontos:.6f}     | {hiba:.6f}")
--------------------
Eredmény;
t_j    | Euler közelités  | Pontos érték   | Abszolut hiba 
------------------------------------------------------------
0.0   | -1.000000         | -1.000000     | 0.000000
0.1   | -0.900000         | -0.904837     | 0.004837
0.2   | -0.809516         | -0.818731     | 0.009214
0.3   | -0.727643         | -0.740818     | 0.013175
0.4   | -0.653561         | -0.670320     | 0.016759
0.5   | -0.586529         | -0.606531     | 0.020001
0.6   | -0.525876         | -0.548812     | 0.022935
0.7   | -0.470995         | -0.496585     | 0.025590
0.8   | -0.421337         | -0.449329     | 0.027992
0.9   | -0.376404         | -0.406570     | 0.030166
1.0   | -0.335747         | -0.367879     | 0.032133


** Process exited - Return Code: 0 **
-------------------------
Magyarázat;
Tegyük fel, hogy adott egy függvény.F(t,S(t))
amely kiszámítjadS(t)dt
, egy numerikus rács,t
, az intervallumból,[t0,tf]
, és egy kezdeti állapotértékS0=S(t0)
Ki tudjuk számolniS(tj)
mindenérttj
bant
a következő lépések segítségével.

BoltS0=S(t0)
egy tömbben,S
SzámításS(t1)=S0+hF(t0,S0)
BoltS1=S(t1)
banS
SzámításS(t2)=S1+hF(t1,S1)
BoltS2=S(t1)
banS
számításS(tf)=Sf−1+hF(tf−1,Sf−1)
.BoltSf=S(tf)
banS
a kezdetiérték-probléma megoldásának egy közelítése. Amikor egy ilyen struktúrájú metódust használunk, azt mondjuk, hogy a metódus integrálja az ODE megoldását.
A differenciálegyenletdf(t)dt=e−t
kezdeti feltétellelf0=−1
rendelkezik a pontos megoldássalf(t)=−e−t
Közelítse a kezdetiérték-feladat megoldását 0 és 1 között 0,1-es lépésekben az explicit Euler-formula segítségével. 

Röviditett változat;

import numpy as np

t = np.arange(0, 1.1, 0.1)
f = [-1.0]

# Euler-módszer generálása egy tömör ciklusban
for tj in t[:-1]:
    f.append(f[-1] + 0.1 * np.exp(-tj))

# Fejléc és adatok kiíratása
print("t_j | Euler    | Pontos   | Hiba")
for tj, fj in zip(t, f):
    p = -np.exp(-tj)
    print(f"{tj:.1f} | {fj:.6f} | {p:.6f} | {abs(fj-p):.6f}")
----------------------------