Python unter Linux.



  • Hallo!
    Ich habe ein Python RAW-Socket Programm gefunden und wollte dieses ausprobieren doch leider bekomme ich die Fehlermeldung das Socket nicht gefunden wurde..
    Hier ist der Code:

    #!/usr/bin/python
    
    from socket import *
    
    s = socket(AF_PACKET, SOCK_RAW)
    s.bind(("eth0", 0))
    
    data = "\x00"
    
    s.send(data)
    
    raw_input("Warten: ")
    s.close()
    

    wenn ich das nun ausführen möchte kommt die Meldung:

    traceback ( most recent call last):
       File "socket.py" line 3, in <module>
          from socket import *
       File /root/socket.py, line 5, in <module>
          s = socket(AF_PACKET, SOCK_RAW)
    NameError: name 'socket' is not defined
    

    Kann mir einer helfen?



  • So..
    Ich habe jetzt mal

    import socket
    

    jetzt sagt er mir das er AF_INET nicht finden kann...



  • Sooo.
    Der erste Fehler war das die Datei niemals socket.py heißen sollte -.-
    Ich habe einiges jetzt noch umgeändert aber...

    #!/usr/bin/python
    
    from socket import *
    
    s = socket(AF_PACKET, SOCK_RAW, IPPROTO_RAW)
    s.bind(("eth0", 15005))
    
    data = "\x00"
    
    s.send(data)
    
    raw_input("Warten: ")
    s.close()
    

    jetzt kommt die Meldung:

    socket.error: [Error 1] Operation not permitted
    

    Das Programm wird als root ausgeführt bitte um Hilfe 😞



  • Ich bin kein Experte aber must du nicht vor dem Senden eine Verbindung zu einem Empfänger herstellen mit connect()



  • Fuer Raw-Sockets braucht man root-Rechte.



  • Habs ein wenig geändert:
    mit wireshark konnte ich auch sehen das es
    bei der Schnittstelle angekommen ist.
    Speicher die Datei unter "test.py" ab
    und ruf sie dann auf mit:
    sudo python test.py

    #!/usr/bin/python 
    from socket import * 
    s = socket(AF_PACKET, SOCK_RAW) 
    s.bind(("wlan0", 0)) 
    data = "\x00" 
    s.send(data) 
    data2 = raw_input("Bitte was eingeben: ")
    s.send(data2)
    s.close()
    

    edit: bin gerade uber die doku gestolpert.
    es muss eigentlich
    \x00Your message\xff
    heissen.

    Machs gut
    Drache


Anmelden zum Antworten