データの長さが type フィールドに書き込まれた raw イーサネット フレームを送信しようとしています。これは有効なイーサネット フレームである必要があります。このための私のコードは次のようになります。
ethData = "foobar"
proto =len(ethData)
if proto < 46:
proto = 46
soc = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, proto)
soc.bind((iface, proto))
何らかの理由で、相手側のパッケージを読むことができません。なぜだろう。ワイヤレス ドライバーの割り込みハンドラーでこのパッケージを取得しようとしています。そのため、このパケットはハードウェアで直接ドロップする必要があります。そうしないと、まったく送信されません。問題はその理由です。