これは私の初めての生ソケットの使用です(ネットワークヘッダー内のフィールドを変更する必要があるので使用する必要があります)。私が読んだドキュメントやチュートリアルではパケットをスニッフィングするソリューションについて説明していますが、必要。私は、パケットを傍受し、処理してそれを宛先にさらに送るスクリプトを作成する必要があります。つまり、スクリプトが決定しない限り、パケットは宛先に到達しません。ネットワークパケットをrawソケットで傍受することはできますか?
学習するために、私はpingを検出し、単に「PING」を印刷する小さなプロトタイプを作成しました。パケットを傍受するときにpingが機能しないと思っています。パケットを宛先に送信するロジックは含まれていません。しかし、pingは動作しています(パケットをスニッフィング/ミラーリングしているようです)。私の目標は、スクリプト内でpingパケットが「トラップ」されていて、その方法を知らないということです。これは、誰かがどのように私は私の目標を達成するか、右文書に私を指すことができます説明でき
sock = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, socket.ntohs(0x0003))
sock.bind((eth0, 0))
packet = sock.recvfrom(65565)
decode_eth(packet)
decode_ip(packet)
if (ipheader.ip_proto == 1):
print("\nPING")
(私は簡単にするためのデコードを行う方法書き込まないよう)私は私の現在のPythonスクリプトでは何ですか?