まあ、scapy などの外部ライブラリとモジュールを使用して、それが可能であることはわかっています。しかし、外部モジュールなしではどうですか? ルートとしてスクリプトを実行しない場合は? 外部依存関係はありませんか?
私は多くのグーグルを行ってきましたが、あまり助けが見つかりませんでした。独自のパケットを作成できるようにしたいのですが、ルートとして実行したり、追加の依存関係をインストールしたりする必要はありません。
助言がありますか?
Python で生の ICMP "ping" パケットをコーディングする方法は次のとおりです。
多くのオペレーティング システム (Linux) では、有効なユーザー ID が 0 (ルート) でない限り、raw ソケットを使用できません。これはライブラリの問題ではありません。一部のオペレーティング システム (Windows XP SP2 以降の非サーバー Windows) では、raw ソケット期間を作成できません。
お使いのシステムでman 7 rawを実行すると、 raw ソケットの詳細を読むことができます。ソケット オプションはすべて、Python ソケット モジュールを使用して渡すことができることに注意してください。