1. Ayyıldız Tim forumu Hariç Hiç Bir şekilde Rütbeli Oldugunu İddaa edenlere inanmayınız..⠀ Ayyıldız Tim Adına Sizden Bilgi Belge TC Kimlik Vb Evrak İsteyenlere Asla Bilgilerinizi Vermeyiniz.

Python Ile Ilgili Sorusu Olan Sorabilir - 2

'Python' forumunda note tarafından 27 Eylül 2018 tarihinde açılan konu

  1. note Atıldı

    • Guest
    Katılım:
    20 Nisan 2017
    Mesaj:
    3,716
    Alınan Beğeniler:
    6,803

    Özel Mesaj
    Bundan önceki konu, fazla mesaj içerdiği için kilitlendi. Bu yüzden sorularınızı burdan sormaya devam edebilirsiniz. İyi forumlar..
     
    Orion-Pax, Siber_Kurt, Z4G0R ve 6 kişi daha bunu beğendi.
  2. note Atıldı

    • Guest
    Katılım:
    20 Nisan 2017
    Mesaj:
    3,716
    Alınan Beğeniler:
    6,803

    Özel Mesaj
    Alparslan5545 , cevabınla ilgili küçük bir bilgi eklemek istiyorum. Kelimeyi ters çevirmek için kelime[::-1] kullanmışsın. Evet gayet hızlı ve kullanışlı. Ancak bundan daha hızlı bir kullanım şekli varsa, o da reversed() fonksiyonudur. İşte sonuçlar(ters çevirmek için büyük bir liste kullandım)

    Kod:
    # -*- coding: cp1254 -*-
    import time
    import random
    
    liste = [i for i in range(9999999)]
    
    def hiz(fonk,*args):
        start_time = time.time()
        fonk(*args)
        return time.time()-start_time
    
    def reverse1(kelime):
        return kelime[::-1]
    
    def reverse2(kelime):
        return reversed(kelime)
    
    
    print("[::-1] -> {}".format(hiz(reverse1,liste)))
    print("reversed() -> {}".format(hiz(reverse2,liste)))
    
    Bu kodların sonucu

    Kod:
    [::-1] -> 0.43799996376
    reversed() -> 0.0
    
    Gördüğün gibi, reversed() neredeyse kasmadı bile. Bu da bir bilgi olsun :)
     
    CİLMAYA, Orion-Pax, hexc0d3r ve 3 kişi daha bunu beğendi.
  3. AYDOĞAN TÜMGENERAL

    • Forum Denetleme Gözlem Komutanı
    Katılım:
    11 Ağustos 2012
    Mesaj:
    12,870
    Alınan Beğeniler:
    64,140
    Meslek:
    Defender Ayt

    Özel Mesaj
    İlk konunun linkini bu konuya kopyalarsan uyelerin bilgilere ulasmasi kolaylasir.
     
  4. note Atıldı

    • Guest
    Katılım:
    20 Nisan 2017
    Mesaj:
    3,716
    Alınan Beğeniler:
    6,803

    Özel Mesaj
    Orion-Pax, Z4G0R ve hexc0d3r bunu beğendi.
  5. Semtex Atıldı

    • Guest
    Katılım:
    6 Kasım 2016
    Mesaj:
    1,711
    Alınan Beğeniler:
    4,053

    Özel Mesaj
    Şu kitaba bakıyordum...

    https://nostarch.com/blackhatpython


    PHP:
    import socket
    target_host 
    "www.google.com"
    target_port 80
    # create a socket object
     
    client socket.socket(socket.AF_INETsocket.SOCK_STREAM)
    # connect the client
     
    client.connect((target_host,target_port))
    # send some data
     
    client.send("GET / HTTP/1.1\r\nHost: google.com\r\n\r\n")
    # receive some data
     
    response client.recv(4096)
    print 
    response 
    Böyle bir kod...

    Python Ver: 3.7

    Kodu çalıştırdım...

    İlk hata...

    print response satırında...

    versiyon 3 parantezi zorunlu kılmış sanırım...

    print (response)

    Yaptım aldırmadım...

    Bu sefer konsolda hata...

    Tamam buna da bir çare uyduralım...

    PHP:
    import socket

    target_host 
    "www.google.com"
    target_port 80
    data 
    "GET / HTTP/1.1\r\nHost: google.com\r\n\r\n"
    sock socket.socket(socket.AF_INETsocket.SOCK_STREAM)
    sock.connect((target_host,target_port))
    sock.send(data.encode('utf-8'))
    response sock.recv(4096)
    print (
    response)
    sendall öneren de olmuş...

    Ama sonuç beni tatmin etmedi...

    PHP:
    b'HTTP/1.1 301 Moved Permanently\r\nLocation: http://www.google.com/\r\nContent-Type: text/html; charset=UTF-8\r\nDate: Thu, 27 Sep 2018 21:14:28 GMT\r\nExpires: Sat, 27 Oct 2018 21:14:28 GMT\r\nCache-Control: public, max-age=2592000\r\nServer: gws\r\nContent-Length: 219\r\nX-XSS-Protection: 1; mode=block\r\nX-Frame-Options: SAMEORIGIN\r\n\r\n<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">\n<TITLE>301 Moved</TITLE></HEAD><BODY>\n<H1>301 Moved</H1>\nThe document has moved\n<A HREF="http://www.google.com/">here</A>.\r\n</BODY></HTML>\r\n'
    Analiz daha okunur dönüş alacak düzenlemeler...

    Basit bir TCP client kodu...

    Sorun yok...

    Ama yukarıda bahsettiğim kitaptan yapıştırıp geçecektim...

    2 ve 3 versiyonları arasındaki farklarla vakit geçirmek de istemiyorum aslında...

    Neyse çözülmüş sorun ama kodu vermeyeceğim bu basit kodun sistematik düzenleme ve analizi hakkında fikir istiyorum...

    Yani 2 den 3 e .çeviri fikirleri...

    Ve bu kodun dönüşündeki hatalar...
     
    Orion-Pax ve note bunu beğendi.
  6. Semtex Atıldı

    • Guest
    Katılım:
    6 Kasım 2016
    Mesaj:
    1,711
    Alınan Beğeniler:
    4,053

    Özel Mesaj
    Beğenme yok sn note.

    Bura senin alanın...

    Ben soracağım sen cevaplayacaksın...

    Kitabı da burada kurcalamış oluruz...

    Gece gece 2.7 de mi kurayım?

    :)

    Kitabı bulabilirsin değil mi?

    21 sayfadan başladım...

    Anlat okuyalım...

    Hep beni yazdırıyorsunuz...

    Biraz da ben okuyayım...
     
    Orion-Pax, Vecihi_33 ve note bunu beğendi.
  7. note Atıldı

    • Guest
    Katılım:
    20 Nisan 2017
    Mesaj:
    3,716
    Alınan Beğeniler:
    6,803

    Özel Mesaj
    Python2 ve Python3 arasında dönüşümler verdiğiniz örnekteki gibi bazen sıkıntı oluşturuyor. Bunun için bugüne kadar çözüm için kullandığım, ise yarar olan dahili 2to3 modülünü çözüm olarak gösterebilirim

    https://docs.python.org/3/library/2to3.html
     
    Orion-Pax, HACKEDmedya ve Semtex bunu beğendi.
  8. note Atıldı

    • Guest
    Katılım:
    20 Nisan 2017
    Mesaj:
    3,716
    Alınan Beğeniler:
    6,803

    Özel Mesaj
    tamam sn Semtex kızmayın :D telden yavaş yazıyorum o yüzden
     
    Orion-Pax ve Semtex bunu beğendi.
  9. Semtex Atıldı

    • Guest
    Katılım:
    6 Kasım 2016
    Mesaj:
    1,711
    Alınan Beğeniler:
    4,053

    Özel Mesaj
    Kitaba bakıp kod örneklerini burada işlersen sevinirim...

    Ben de arada soru sorarım...

    2to3 e de bakar hem kendi çözümlemelerini hem de modülün çözümlerini karşılaştırırsan okuması da keyifli olur...

    Bu basit kodun çıktısını beğenmedim düzenlersem keyifle okurum...

    Acelesi yok...

    Vaktin oldukça yazarsan bakar okurum...

    Şimdiden kolay gelsin...

    Zor soru sormayacağım söz...
     
    Orion-Pax ve note bunu beğendi.
  10. Semtex Atıldı

    • Guest
    Katılım:
    6 Kasım 2016
    Mesaj:
    1,711
    Alınan Beğeniler:
    4,053

    Özel Mesaj
    Evet 2.7.2 de kurdum burada konuşurken...

    Çıktı...

    Kod:
    HTTP/1.1 301 Moved Permanently
    
    Location: http://www.google.com/
    
    Content-Type: text/html; charset=UTF-8
    
    Date: Thu, 27 Sep 2018 21:37:35 GMT
    
    Expires: Sat, 27 Oct 2018 21:37:35 GMT
    
    Cache-Control: public, max-age=2592000
    
    Server: gws
    
    Content-Length: 219
    
    X-XSS-Protection: 1; mode=block
    
    X-Frame-Options: SAMEORIGIN
    
    
    
    <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
    <TITLE>301 Moved</TITLE></HEAD><BODY>
    <H1>301 Moved</H1>
    The document has moved
    <A HREF="http://www.google.com/">here</A>.
    
    </BODY></HTML>
    
    Şeklinde okunur hale geldi...

    Evet 3.7 deki düzeltme önerilerini alabilirim...
     
    Orion-Pax, HACKEDmedya ve note bunu beğendi.
  11. note Atıldı

    • Guest
    Katılım:
    20 Nisan 2017
    Mesaj:
    3,716
    Alınan Beğeniler:
    6,803

    Özel Mesaj
    Birinci çözüm, bytes olarak verilen bu string dizisini UTF-8 olarak decode ederek düzgün görünüme kavuşturabiliriz

    Kod:
    print(response.decode("utf-8"))
    
    Ascii olarak da yazdırabiliriz

    Kod:
    print(response.decode("ascii"))
    
    Soruda belirttiğiniz, sendall() veya encode() yerine, string başına "b" koyarak da soruna çözüm bulabilirsiniz.

    son durum
    Kod:
    import socket
    target_host = "www.google.com"
    target_port = 80
    # create a socket object
    client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    # connect the client
    client.connect((target_host,target_port))
    # send some data
    client.send(b"GET / HTTP/1.1\r\nHost: google.com\r\n\r\n")
    # receive some data
    response = client.recv(4096)
    print(response.decode("utf-8"))
    
     
    Orion-Pax ve HACKEDmedya bunu beğendi.
  12. note Atıldı

    • Guest
    Katılım:
    20 Nisan 2017
    Mesaj:
    3,716
    Alınan Beğeniler:
    6,803

    Özel Mesaj
    Zor soru değil, Python'da klişe olmuş soruları sorarsanız sıkıntı olabilir :D
     
    Orion-Pax, Alparslan5545 ve Semtex bunu beğendi.
  13. Semtex Atıldı

    • Guest
    Katılım:
    6 Kasım 2016
    Mesaj:
    1,711
    Alınan Beğeniler:
    4,053

    Özel Mesaj
    Orion-Pax, HACKEDmedya ve note bunu beğendi.
  14. Semtex Atıldı

    • Guest
    Katılım:
    6 Kasım 2016
    Mesaj:
    1,711
    Alınan Beğeniler:
    4,053

    Özel Mesaj
    Bir de process monitoring with WMI konusuna bakabilir misin?
     
    Orion-Pax, HACKEDmedya ve note bunu beğendi.
  15. note Atıldı

    • Guest
    Katılım:
    20 Nisan 2017
    Mesaj:
    3,716
    Alınan Beğeniler:
    6,803

    Özel Mesaj
    Bahsettiğiniz kitabı buldum. Kitabı incelemiştim daha önceden. Örnekler genelde Python2 için yazılmış.

    Python3, Python2'ye göre birçok yenilikle geldi, bunlardan birisi de karakter kodlamaları. Karakter kodlamaları halen daha Python2 de sıkıntılı. Bu örnekteki tek göze batan sorun da karakter kodlamasıyla ilgili. Bence uyumsuzluk normal.
     
  16. note Atıldı

    • Guest
    Katılım:
    20 Nisan 2017
    Mesaj:
    3,716
    Alınan Beğeniler:
    6,803

    Özel Mesaj
    Sayfa 143 değil mi?

    Kod:
    import win32con
    import win32api
    import win32security
    import wmi
    import sys
    import os
    def log_to_file(message):
        fd = open("process_monitor_log.csv", "ab")
        fd.write("%s\r\n" % message)
        fd.close()
        return
    log_to_file("Time,User,Executable,CommandLine,PID,Parent PID,Privileges")
    c = wmi.WMI()
    process_watcher = c.Win32_Process.watch_for("creation")
    while True:
        try:
            new_process = process_watcher()
            proc_owner= new_process.GetOwner()
            proc_owner= "%s\\%s" % (proc_owner[0],proc_owner[2])
            create_date= new_process.CreationDate
            executable= new_process.ExecutablePath
            cmdline= new_process.CommandLine
            pid= new_process.ProcessId
            parent_pid= new_process.ParentProcessId
            privileges = "N/A"
            process_log_message = "%s,%s,%s,%s,%s,%s,%s\r\n" % (create_date,proc_owner, executable, cmdline, pid, parent_pid, privileges)
            print process_log_message
            log_to_file(process_log_message)
        except:
            pass
    
    
    
     
  17. Semtex Atıldı

    • Guest
    Katılım:
    6 Kasım 2016
    Mesaj:
    1,711
    Alınan Beğeniler:
    4,053

    Özel Mesaj
    Aynen öyle...

    Çözülemeyecek sıkıntılar değil...

    Ama üzerinden geçelim...

    Yazılar kısa yalnız daha uzun yazılar istiyorum...

    WMI kodu...

    Kod:
    import win32con
    import win32api
    import win32security
    import wmi
    import sys
    import os
    def log_to_file(message):
    fd = open("process_monitor_log.csv", "ab")
    fd.write("%s\r\n" % message)
    fd.close()
    return
    # create a log file header
    log_to_file("Time,User,Executable,CommandLine,PID,Parent PID,Privileges")
    # instantiate the WMI interface
    ➊ c = wmi.WMI()
    # create our process monitor
    ➋ process_watcher = c.Win32_Process.watch_for("creation")
    while True:
    try:
    ➌ new_process = process_watcher()
    ➍ proc_owner = new_process.GetOwner()
    proc_owner = "%s\\%s" % (proc_owner[0],proc_owner[2])
    create_date = new_process.CreationDate
    executable = new_process.ExecutablePath
    cmdline = new_process.CommandLine
    pid = new_process.ProcessId
    parent_pid = new_process.ParentProcessId
    privileges = "N/A"
    process_log_message = "%s,%s,%s,%s,%s,%s,%s\r\n" % (create_date,proc_owner, executable, cmdline, pid, parent_pid, privileges)
    print process_log_message
    log_to_file(process_log_message)
    except:
    pass
    Kitaptaki gibi bıraktım...

    Biraz irdeleyip...

    V.3 e çevirelim gerekiyorsa...
     
  18. Semtex Atıldı

    • Guest
    Katılım:
    6 Kasım 2016
    Mesaj:
    1,711
    Alınan Beğeniler:
    4,053

    Özel Mesaj
    Mesela 2.7.2 win32con ne olaki diye sorar...
     
    Orion-Pax, HACKEDmedya ve note bunu beğendi.
  19. note Atıldı

    • Guest
    Katılım:
    20 Nisan 2017
    Mesaj:
    3,716
    Alınan Beğeniler:
    6,803

    Özel Mesaj
    Vaktim olursa söz uzun yazmaya çalışacağım. Şimdilik mazur görün. Örneği de adım adım incelemeye çalışıp Python3 için uyumlu olmayan kısımlarını çevirebiliriz.

    Kodda kötü bir kısım var, o da log_to_file() fonksiyonu. Log mesajını yazmak için sürekli dosyayı açıp kapatmak uygun değil. Onu da düzeltebiliriz.

    Ayrıca win32con, python2 için pypiwin32 paketi içerisinde

    Kod:
    pip install pypiwin32
    
     
    Orion-Pax ve HACKEDmedya bunu beğendi.
  20. Semtex Atıldı

    • Guest
    Katılım:
    6 Kasım 2016
    Mesaj:
    1,711
    Alınan Beğeniler:
    4,053

    Özel Mesaj
    Zevkle ve merakla bekliyorum...

    Aslında ben de gcc konsol parametreleri, windows net komutlarıyla ilgili bir şeyler hazırlayacağım...

    Bu kitaptaki basit kodların ise version 2 ve version 3 örneklerinin çevirimi biraz zihin jimnastiği...

    Aynı zamanda python network ve temel socket konuları içinde basit bir başlangıç olur ve okuyanlara faydalı olur...

    Yani kısaca sorum kitaptaki tüm kodlar...

    :)

    Vaktiniz oldukça yazarsanız ben de zevkle okurum...

    Kolay gelsin...
     

Bu Sayfayı Paylaş