Wie bei Python mit "If" überprüfen ob Variable mit bestimmten Wert in Liste enthalten ist?

Ich muss für die Schule ein Spiel in Python programmieren. Problem dabei: Uns wurde noch nicht wirklich viel beigebracht und daher verstehe ich nicht, wie ich gewisse Sachen programmieren soll.

Folgendes Szenario bereitet mir nun Schwierigkeiten:

Das Programmierte ist kein Ausschnitt aus meinem Spiel, sondern einfach das gleiche Schema, wie die eine Stelle in meinem Spiel (sonst wäre es zu kompliziert zum verstehen). x hat z.B nicht immer den Wert 5, dieser ändert sich im Verlaufe des Programms.

Ich möchte überprüfen, ob eine der Variable in der Liste einen Wert zwischen 0 und 10 hat. Ist es möglich, dies mit einem "if" Befehl zu lösen? Was müsste bei "Bedingung_erfüllendes_Element" stattdessen stehen? Ich kann da ja nicht ">=0 and <=10" hinschreiben. Das einzige, was ich überprüfen kann, ist ob eine bestimmte Variable in der Liste ist. (z.B if x in liste), aber das möchte ich ja nicht, ich möchte auf den WERT der vorhandenen Variablen überprüfen.

Ich habe es auch schon mit einer For-Schleife probiert, aber da ist da Problem, dass wenn zwei Elemente, welche die Bedingung erfüllen, vorkommen, dass die folgenden Befehle doppelt ausgeführt werden. Es soll aber, für jedes Element, welches die Bedingung erfüllt, ein anderer Text geprintet werden.

Ich brauche wirklich nur diesen einen, eigentlich simplen Befehl, der überprüft, ob es in der Liste mindestens ein Element hat, welches einen bestimmten Wert hat.

Bild zum Beitrag
programmieren, Informatik, Programmiersprache, Python
Wie sende ich DNS Cookies mit dnslib?

Ich möchte mit dnslib die DNS-Antworten von den jeweiligen Anfragen mit einem DNS-Cookie versehen. Ich habe auch bereits etwas dafür in meinen Code implementiert, jedoch funktioniert das noch nicht so. Kann mir jemand sagen, was ich da brauche?

Der Code:

import socket
from dnslib import *

DNS_PORT = 53

dns_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
dns_socket.bind(('', DNS_PORT))

print(f"DNS-Server hört auf Port {DNS_PORT}...")

def dns_forward(domain):
    try:
        ip_address = socket.gethostbyname(domain)
        return ip_address
    except socket.error:
        return '185.199.111.153' #Error 404

while True:
    data, address = dns_socket.recvfrom(1024)

    dns_message = DNSRecord.parse(data)
    dns_request = str(dns_message.q.qname)
    
    dns_answer = dns_forward(dns_request)
    
    client_ip = address[0]
    client_port = address[1]

    dns_cookie = ("4096")

    if client_ip == '192.168.0.113'
        dns_response = DNSRecord(DNSHeader(id=dns_message.header.id, qr=1, aa=1, ra=1), q=dns_message.q)
        dns_response.add_answer(RR(dns_request, QTYPE.A, rdata=A(dns_answer)))
        dns_response.add_ar(RR(dns_request, QTYPE.OPT, rdata=TXT(dns_cookie)))
        dns_socket.sendto(dns_response.pack(), address)
    
    print(f"DNS-Anfrage von {client_ip} mit Port {client_port} für {dns_request} die Antwort ist {dns_answer}")

Die Fehlermeldung:

Traceback (most recent call last):
 File "c:\Users\Stoppersocke\Documents\Projects\MDM Bypass\test5.py", line 35, in <module>
  dns_socket.sendto(dns_response.pack(), address)
           ^^^^^^^^^^^^^^^^^^^
 File "C:\Users\Stoppersocke\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\dnslib\dns.py", line 339, in pack
  ar.pack(buffer)
 File "C:\Users\Stoppersocke\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\dnslib\dns.py", line 885, in pack
  for opt in self.rdata:
TypeError: 'TXT' object is not iterable
DNS, Netzwerktechnik, Programmiersprache, Python, DNS FEHLER, DNS-Server, Python 3

Meistgelesene Beiträge zum Thema Python