Python – die neusten Beiträge

Mit Handy fake Wlan?

Hi,

In der Schule haben wir momentan das Thema Sicherheit im Internet. Nach den Sommerferien sollen wir etwas demonstrieren, was darstellt, wie groß die Gefahr im Netz ist.

Als Idee habe ich, dass ich mit dem Handy alleine ein Fake Wlan erstelle mit einer "Im Wlan anmelden" Seite. Die dürfte jedem bekannt sein... Sehr viele Menschen nutzen immer die gleichen Passwörter, weshalb es einfach ein Feld gibt wo man eine Email eingeben muss und eins für ein Passwort. Die Daten werden dann einfach gespeichert und schon werden viele in meine "Falle" getappt sein. Die Daten werde ich selbstverständlich danach löschen. Ich möchte keinen Stress mit denen. Ich halte diese Idee aber für recht sinnvoll für unser Thema.

Falls jemand eine bessere Idee in diese Richtung hat, gerne melden.

Mein Wissen:

Es gibt sowas ähnliches namens Fake access Point nur das das dann halt alles angreift, was man am Handy im Wlan macht. Bei mir soll jedoch kein Wlan freigegeben werden, da ich dafür einen wlan Stick vermutlich brauche.

Also es soll kein Wlan freigegeben werden. Kann man dann auch eine Nachricht ans Handy schicken, wie z.B. du wurden reingelegt?

Das war mit meinem Wissen.

Falls ich es brauche: Ich habe Kenntnisse in Python und ein sehr wenig in Thermux...

Konstruktives Feedback nehme ich sehr gerne an. Wenn ihr die Idee für Schwachsinn haltet lasst es mich gerne mit ner Begründung wissen.

Danke im Voraus

Internet, WLAN, Hacking, Python

Warum klickt der Webdriver auf ein anderes Element?

Hallo,

heute mal wieder die KrünKraft Website:

Mein Python Selenium Skript soll auf folgender Seite: GrünKraft Zufriedenheit (gruenkraft-zufriedenheit.de) den Button PayPal-Konto drücken. Danach sollte sich dann ein input Feld auftun, welches dann ausgefüllt werden soll.

<div class="column-left w-col w-col-5">
<label class="radio-button-field-2 left w-radio">
<input type="radio" id="paypal" name="payout" value="paypal" data-name="payout" required="" class="w-form-formradioinput radio-button w-radio-input">
<span for="paypal" class="radio-button-label-2 w-form-label">PayPal-Konto</span>
</label>
</div>

Den Code für das Inputfeld lasse ich jetzt mal weg, da es wirklich nur ein Input Feld ist.

Mein erster Code:

from selenium import webdriver
import time
driver = webdriver.Chrome('C:/Users/.../Desktop/Python/chromedriver.exe')
driver.maximize_window()
driver.get('https://gruenkraft-zufriedenheit.de/')
element = driver.find_element_by_id("paypal")
time.sleep(4)
element.click()

Wenn ich den Code der Website richtig verstanden habe, dann muss man doch zuerst auf den gestylten Radiobutton drücken, damit das Inputfeld erscheint. Führe ich dann aber den oben gezeigten Code aus, dann kommt die Meldung: "Other element would receive the click" und zwar anscheinend das Textfeld darunter. Warum ist das so?

Ein Code der funktioniert ist folgender:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.action_chains import ActionChains


driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(30)
driver.get("https://gruenkraft-zufriedenheit.de/")
wait = WebDriverWait(driver, 10)
driver.find_element_by_xpath("//span[text()='PayPal-Konto']").click()
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "input[name='paypal-email-2']"))).send_keys('some-email@gmail.com')

Da wird gewartet, bis das Element sichtbar wird( Was heiß das dann schon wieder? ) und offensichtlich wird nicht der Radiobutton, sondern das span Element angeklickt. Warum funktioniert das dann?

Danke

PC, Computer, Browser, Technik, IT, programmieren, Informatik, Python

Wieso löscht ein Discord.py Bot alle Nachrichten eines Users wenn er ihn bannt?

Heyho!

Ich programmieren jetzt schon seit längerem an einen Discord Bot in Python.
Das meiste bekomme ich alleine hin, nur jetzt brauche ich dringend Hilfe!

Wenn ich den Ban Befehl in Discord ausführen möchte, wird der User zwar gebannt, aber seine gesamten Nachrichten werden gelöscht, wie bei einem Softban?
Ich versteh das irgendwie nicht... Ich bin auf vielen Servern Moderator und wenn ich dort den Ban Befehl ausführe wird nur der User gebannt und nicht seine Nachrichten gelöscht...

Was mir noch gerade einfallen ist, dass wenn ich den Clear Befehl ausführe wird die Nachricht zum Beispiel "Clear 4" gesendet, aber bei den vier Nachrichten die gelöscht werden ist der Clear Befehl auch dabei.

Ban:

@bot.command(name='ban', pass_context=True)
@has_permissions(ban_members=True)
async def ban(ctx, member: discord.Member, *, reason=None):
    await member.ban(reason=reason)
    embed = discord.Embed(description='', color=0x27ae60)
    embed.add_field(name='__**Banned**__', value=f'Der User {member.name} wurde erfolgreich gebannt!\r'
                                                 f'Grund: **{reason}**', inline=True)
    embed.set_footer(text=f'Moderator: {ctx.author.name} • {ctx.author.id}', icon_url=ctx.author.avatar_url)
    await ctx.send(embed=embed)


@ban.error
async def ban_error(ctx, error):
    if isinstance(error, commands.MissingPermissions):
        embed = discord.Embed(description=' ', color=0xc0392b)
        embed.add_field(name='__**ERROR**__', value='Du hast nicht die Berechtigungen dazu!', inline=True)
        await ctx.send(embed=embed)

    if isinstance(error, commands.MissingRequiredArgument):
        embed = discord.Embed(description=' ', color=0xc0392b)
        embed.add_field(name='__**ERROR**__', value='Bitte überprüfe deine Eingabe **@User/ID** fehlt!', inline=True)
        await ctx.send(embed=embed)

Clear:

@bot.command(pass_context=True, name='clear')
@has_permissions(manage_messages=True)
async def clean(ctx, limit: int, deleted=None):
    await ctx.channel.purge(limit=limit)
    await ctx.send(format(len(deleted) - 1))


@clean.error
async def clean_error(ctx, error):
    if isinstance(error, commands.MissingPermissions):
        embed = discord.Embed(description=' ', color=0xc0392b)
        embed.add_field(name='__**ERROR**__', value='Du hast nicht die Berechtigungen dazu!', inline=True)
        await ctx.send(embed=embed)

    if isinstance(error, commands.MissingRequiredArgument):
        embed = discord.Embed(description=' ', color=0xc0392b)
        embed.add_field(name='__**ERROR**__', value='Bitte überprüfe deine Eingabe **Anzahl** fehlt!', inline=True)
        await ctx.send(embed=embed)

Hat jemand eine Ahnung was bei den beiden die Fehler sein könnten?

Danke schon mal im Voraus :)

LG Max

P.S. Sorry, dass das hier so lange wurde.

Computer, Technik, Python, Discord, Discord Bot, discord.py

AttributeError: 'PhotoImage' object has no attribute 'shape'?

Ich bin derzeit dabei mit tkinter, opencv und mit Media Pipe Framework zu arbeiten. Dabei möchte ich Bilder Hochladen können und die hochgeladenen Bilder soll mithilfe von Mediapipe die Hand Landmarks erfassen. Mit Hand Landmarks meine ich alle 21 Positionen eines Hand zu erkennen (Hier findet ihr mehr Infos dazu: https://google.github.io/mediapipe/solutions/hands.html ). Leider bekomme ich mit meiner erstellten Implementierung folgende Fehlermeldung:

INFO: Created TensorFlow Lite XNNPACK delegate for CPU.
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Python\Python37\lib\tkinter\__init__.py", line 1705, in __call__
    return self.func(*args)
  File "C:/Users/bj/projects/pro1/pictureMp.py", line 31, in imageLandmarks
    height, width, _ = image.shape
AttributeError: 'PhotoImage' object has no attribute 'shape'

Was kann ich dagegen machen? Hier ist mein aktueller Code:

def imageLandmarks():
    global panelA
    with mpHands.Hands(static_image_mode=True, max_num_hands=2, min_detection_confidence=0.5) as hands:
        select_image.path = filedialog.askopenfilename()
        filename = os.path.basename(select_image.path)

        if len(select_image.path) > 0:
            image = cv2.imread(select_image.path)
            image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
            image = Image.fromarray(image)
            image = ImageTk.PhotoImage(image)

            height, width, _ = image.shape
            results = hands.process(image)

            num_cords = 21
            landmarks = ['class']
            for val in range(1, num_cords + 1):
                landmarks += ['x{}'.format(val), 'y{}'.format(val), 'z{}'.format(val)]

                if results.multi_hand_landmarks:
                    for num, hand in enumerate(results.multi_hand_landmarks):
                        mpDraw.draw_landmarks(image, hand, mpHands.HAND_CONNECTIONS)
programmieren, Python, opencv, Tkinter

Primzahlengenerator: Ist die Funktion, die ich in Python programmiert bereits bekannt?

Im folgenden Python Programm werden alle ungeraden Primzahlen generiert.

Es verwendet die senkrechte "Mittellinie" des Pascalschen Dreiecks. Beispielzahlen, die verwendet werden: 2,6,20,70,252,924,3432,.....

2 \ 3 = 2 -> 3 - 2 = 1 -> Prim
6 \ 5 = 1 -> Prim
20 \ 7 = 6 -> 7 - 6 = 1 -> Prim
70 \ 9 = 7 bzw. 9 - 7 = 2 -> Rest ungleich 1 -> nicht Prim
252 \ 11 = 10 -> 11 - 10 = 1 -> Prim
# Programer: Peter Rasinger, Ferlach, Austria, 2005 - 2021
import math
import decimal
decimal.getcontext().prec = 2500000 #250000000000000000
decimal.getcontext()
def is_prim(a4,d4):
  f4 = a4 % d4
  g4 = d4 - f4
  if f4 == 1 or g4 == 1 and d4 != 1:
    return(1==1)
  else:
    return(1==2)
def calc_prim(f3,g3,h3): #f3 = x over x/2 : x \ 2 == 0 ... and g3 == x / 2 ... 6 over 3 = 20 = 6! / (3! * 3!), 8 over 4 = 70
             #h3 = steps to calulate (impair numbers)
  a3 = f3
  b3 = g3
  c3 = b3 + 1
  if is_prim(a3,c3):
    print(c3)
  for i3 in range(g3 + 2,(h3 * 2) + g3,2):
    r3 = a3 * 4
    s3 = r3 // i3
    a3 = r3 - s3
    b3 = i3
    c3 = b3 + 1
    if is_prim(a3,c3):
      print(c3)
  print(math.trunc((math.log(a3) // math.log(10)) + 1)," max digits used")
calc_prim(252,10,100) #252 = 10! / (5! * 5!) ... check 100 impairs ... startvalues for 11
#calc_prim(924,12,100) #924 = 12! / (6! * 6!) ......................... startvalues for 13
#calc_prim(2,2,5)
Mathematik, programmieren, Primzahlen, Python

Python "in" in einer IF-verzweigen funktioniert nicht?

Hallo zusammen,

ich möchte per Tastendruck den Link zu einem Screenshot z.B. https://i.imgur.com/qk5TpU0.png
aus meiner Zwischenablage in ein Google Spreadshead hochladen. Diese sollen natürlich untereinander erscheinen und nicht doppelt. Hier funktioniert aber nicht der "in" Operator.

Bild vom Spreadshead: https://i.imgur.com/gOxxDeN.png

Der Code: "
import keyboard
from tkinter import Tk
import gspread
from oauth2client.service_account import ServiceAccountCredentials

# use creds to create a client to interact with the Google Drive API
scope = ["https://spreadsheets.google.com/feeds", 'https://www.googleapis.com/auth/spreadsheets',
         "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive"]
creds = ServiceAccountCredentials.from_json_keyfile_name('client_secret.json', scope)
client = gspread.authorize(creds)

# Find a workbook by name and open the first sheet
# Make sure you use the right name here.
sheet = client.open("test für api").sheet1


def check_value_existence():
    row = 2  # Reihe
    col = 2  # Spalte
    value = sheet.cell(col, row).value
    clipboard = Tk().clipboard_get()
    if "imgur" in value:
        while True:
            col = col + 1
            value = sheet.cell(col, row).value
            if "imgur" in value:
                break
        print("found", col)
        col = col - 1
        if value != clipboard:
            sheet.update_cell(2, 2, clipboard)


while True:
    if keyboard.read_key() == "p":
        print("You pressed p")
        check_value_existence()
"
Computer, programmieren, Code, Informatik, Python, Python 3

Meistgelesene Beiträge zum Thema Python