RAW-Socket Error

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
BLVCK
User
Beiträge: 4
Registriert: Samstag 22. Juli 2017, 15:31

Hallo miteinander,

ich habe mir testweise ein kleines Script geschrieben, welches ein RAW-socket erzeugen sollte,
Ziel- und Quell-MAC paketiert und den gepakten Ethernet-Header zu versenden.

Code: Alles auswählen

import socket
import sys
from binascii import unhexlify
import struct

# Creating RAW-Socket
try:
    rawSocket = socket.socket(socket.PF_PACKET, socket.SOCK_STREAM, socket.IPPROTO_IP)
except socket.error as e:
    print("[-] Error occurred while creating socket. Error message: " + str(e))
    sys.exit()

# Bind socket to interface and IP protocol
rawSocket.bind(("wlan0", socket.htons(0x0800)))

# Convert MAC Address into bytes
macSou = unhexlify("60:67:20:xx:xx:xx".replace(':',' '))  # 'xx' placeholder
macDes = unhexlify("b8:27:eb:xx:xx:xx".replace(':',' '))  
ethType = unhexlify("x08 00")

# Pack ethernet header and send packet 
packet = struct.pack('!6s6s2s', macSou, macDes,ethType)

rawSocket.send(packet + "Hello World")

[-] Error occurred while creating socket. Error message: [Errno 94] Socket type not supported
Allerdings scheitert es schon bei der Erstellung des Sockets.
Ich selbst bin noch recht unerfahren was die Netzwerkprogrammierung angeht, weshalb ich euch nun um Hilfe bitte :D

Habt Ihr vielleich eine Idee woran das liegt?

Danke bereits im voraus:)
Benutzeravatar
snafu
User
Beiträge: 6731
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Was genau hast du vor, dass du so tief unten im Netzwerk-Stack arbeiten musst? Normalerweise nutzt man hierfür abstrahierende Bibliotheken, die einem das Leben erleichtern.
Antworten