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 malimport 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