問題タブ [scapy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - scapyでhexdumpからデータを取得する方法は?
これは、受信したパケットの 16 進ダンプです。
それは基本的に私のペイロードです。どうすれば取得できますか?
python - 可能なすべてのパケットでネットワーク損失下でサーバーの動作をテストする方法
私はモバイルで作業しているので、ネットワークの損失はよくあることだと思います。私は支払いを行っているので、各要求は重要です。
サーバーをテストして、要求サイクルのさまざまな時点で、特にネットワーク通信全体の特定のパケット送受信間でクライアント ネットワークが失われた場合にサーバーがどのように動作するかを正確に確認できるようにしたいと考えています。
応答の送信中と FIN-ACK の待機中に通信が失われた場合、サーバーの動作がわずかに異なると思われます。また、切断のどのタイミングを区別できるかを知りたいです。
scapy を使用して http リクエストをシミュレートし、各 TCP パケット間の通信を停止してみました。(つまり、最初に SYN を送信してから消える、次に SYN を送信して SYN-ACK を受信してから消える、次に SYN を送信して SYN-ACK を受信し、ACK を送信してから消える、など)。機能する TCP スタックを再現しようとしています。
この種のテストを自動化/有効化するための優れた既存のツールはありますか?
python - scapy による柔軟なトラフィック生成
このような質問が以前にも何度も出されたことは知っていますが、これは微妙に異なると思います。
scapy を使用して Python で柔軟なトラフィック ジェネレーターを作成しようとしています。パケットの生成は問題ありませんが、トラフィックを十分に速い速度で送信するとなると (私のニーズでは、1 秒あたり 500 ~ 700 パケットの範囲のどこか)、約 20 ~ 30 pps で壁にぶつかったようです。
スレッド化が必要になる可能性があると思いますか、それとももっと簡単なものがありませんか?
python - Scapy を使用して IP 範囲に ping を実行する
Scapy モジュールを使用して内部 IP 範囲に ping を実行し、どの IP がオンラインであるかを判断する Python スクリプトを作成しようとしています。私はこれまでのところこれを持っています:
そして、プログラムは何もせずにしばらく座ってから、CTRL + CI で強制終了すると、エラー メッセージが表示されます。
ただし、範囲ではなく単一の IP アドレスで試してみると、機能します。このような:
この問題を解決する方法を知っている人はいますか? または、どのホストがオンラインであるかを判断するために、Scapy を使用して IP 範囲に ping を実行する方法について、他のアイデアはありますか?
python - Python Scapy wrpcap-pcapファイルにパケットを追加するにはどうすればよいですか?
BERやネットワーク上の遅延などをエミュレートできるソフトウェアがいくつかあります。ソフトウェアのBERモジュールをテストして、実際に正しく機能することを確認する方法が必要です。私の解決策は、typeフィールドが未使用のtypeに設定された生のイーサネットフレームを送信するプログラムを作成することです。イーサネットフレームの内部には、ランダムなビットがあります。送信されるフレームごとに、フレームをpcapファイルに記録する必要があります。ネットワークリンクの反対側には、受信したすべてのパケットを独自のpcapログに書き込むだけの受信アプリケーションがあります。テストの実行が完了すると、2つのpcapログが比較されてBERが取得されます。
私はPythonモジュールを使用してScapyおり、これまでのところ、必要なことはすべて実行しています。ランダムデータを含む生のイーサネットフレームを送信して、Wiresharkで確認できます。wrpcap()ただし、上書きする代わりに、メソッドをpcapファイルに追加する方法がわかりません。にパケットのリストを書き込むことができることはわかっていますwrpcapが、このアプリケーションは無期限に実行できる必要があり、ハードドライブに送信されたすべてのパケットの書き込みをアプリケーションが終了するまで待つ必要はありません。 。それはメモリに保存するのに多くのことになるので、何かが起こった場合、私は最初からテストを最初からやり直す必要があります。
私の質問は、ファイルを上書きする代わりに、pcapを使用してファイルに追加するにはどうすればよいですか?それも可能ですか?そうでない場合、どのモジュールが必要なことを実行できますか? scapypcap
の機能を備えたものを探しているときScapyに遭遇しましたdpktが、そのためのドキュメントはあまり見つかりませんでした。dpkt私が求めていることを実行できますか?もしそうなら、どこでそれに関するいくつかの良いドキュメントを入手できますか?
python - Scapy を使用した Pydev で「未解決のインポート」エラーが発生する
scapy モジュールを使用するプログラムを作成しようとしています。開発に PyDev を使用していますが、Scapy モジュールの特定の部分をインポートするとエラーが発生し続けます。PyDev のインポート パスが正しく設定されていると確信しています。ここで、「未解決のインポート」エラーに関する他の質問をいくつか見てきました。しかし、私が見た提案はどれも役に立たないようでした。
奇妙なことに、動作しないのは scapy モジュールの一部にすぎません。たとえば、PyDev は文句を言いません。
しかし、私がするとき
エラーが発生します。
間違ったモジュールをインポートしたのではないかと思いましたが、インタープリターに移動して2番目の例を入力すると、エラーは発生せず、IP(params)を使用してIPパケットを作成できます。プログラム。
ubuntuリポジトリを使用してscapyをインストールしましたが、インポートの問題が発生し始めたとき、scapy.netから最新バージョンをダウンロードし、セットアップスクリプトを使用しました. zip をコピーして/usr/local/lib/python2.7/site-packagesフォルダーに入れ、PyDev の Python パスに追加しました。しかし、何もエラーを取り除くようには見えません。
これを引き起こしている可能性のあるものと、それを修正する方法について何か提案はありますか?
python - Python(またはScapy)を使用してランダムなIPv6アドレスを生成するにはどうすればよいですか?
私のテストケースでは、ランダムなIPv6送信元アドレスと固定プレフィックスを使用してNAを送信する必要があります。例えば:
プレフィックス2001::cafe:/64を修正しました。アドレスの残りの部分はランダムである必要があります。
PythonまたはScapyで達成する方法は?
encoding - 文字列化された場合のscapyエンコーディング
scapy でパケットをストリングするときに得られる以下のエンコーディングは何ですか? これは確かに 16 進数ではありません。
str(IP()) 'E\x00\x00\x14\x00\x01\x00\x00@\x00|\xe7\x7f\x00\x00\x01\x7f\x00\x00\x01'</p>
python - Python 2.7 用に libdnet をコンパイルします。
win32 python2.7でscapyを使用しようとしています
これを期待して、他のすべての依存関係をコンパイルすることができました
この実行可能ファイルに到達するという目標に役立つものはありますか? 「dnet-1.12.win32-py2.7.exe」
(この質問と scapy マニュアルも更新することを約束します。
Python 2.7 を使用して Windows で Scapy を実行する)
アップデート:
私はvs2005を使用しているmingw32でコンパイルすることができました.libdnetにいくつかの修正を加えて実際に動作させる必要があります(前回Windowsでコンパイルしたときはvs6.0でしたように見えます)
scapy マニュアルを更新してみます... (そしてそこに実行可能ファイルをアップロードします)
python - Pythonでデータセットの情報を確認する
現在、MACアドレスを含む文字列を比較する必要があります(例:Python 2.7を使用した「11:22:33:AA:BB:CC」。現在、MACアドレスを含む事前構成済みのセットがあり、スクリプトが繰り返されますセットを介して、新しい各MACアドレスをリスト内のアドレスと比較します。これはうまく機能しますが、セットが大きくなるにつれて、スクリプトの速度が大幅に低下します。わずか100程度で、大きな違いに気付くことができます。
このプロセスをスピードアップするためのアドバイスはありますか?それらをセットで保存するのが比較するのに最適な方法ですか、それともたとえばCSV / DBに保存する方が良いですか?
コードのサンプル...