
TCP、UDP、SSL、HTTPの送受信のためのネットワークユーティリティ

Read this in other languages: English, Español, Deutsch, Français, italiano 简体中文.
Packet Senderは、TCP、UDP、SSL(暗号化TCP)パケットの送受信、およびHTTP/HTTPSリクエストとパネル生成を可能にするオープンソースのユーティリティです。メインラインブランチは公式にWindows、Mac、およびデスクトップLinux(Qt使用)をサポートしています。他の場所で再コンパイルおよび再配布される場合もあります。Packet Senderは無料で、GPL v2以降のライセンスが適用されます。商用利用および個人利用の両方に使用できます。アプリが役立つと感じられたら、開発を継続するために寄付/スポンサーをご検討ください。
Packet Senderは以下のスポンサーに感謝します。
IWLは、コンピュータネットワーキング製品を製造するカリフォルニアの企業です。
NagleCodeは、ソフトウェアパブリッシャー兼開発スタジオです。
Eletiopeは、展示会や博物館向け、および企業ショールーム向けに、照明、オーディオビジュアル、没入型ルームを設置します。
John Huntington
作家、コンサルタント、教育者、サウンドエンジニア、受賞歴のある写真家、ストームチェイサー。
注: Windowsで問題が発生している場合は、ファイアウォールを(一時的に)無効にしてみてください。
Packet Senderの公式リリースはPacketSender.comからダウンロードできます。一部のサイトではPacket Senderが再配布されています。

iOS版Packet Senderは完全にネイティブで、必要最小限の権限のみを含み、データを一切収集しません。これはあなたを尊重するソフトウェアです。この取り組みへのご支援に感謝します。
iOS版はApple App Storeにあります。
Packet Senderはすべてのデスクトップバージョンで同一です。唯一の違いは、オペレーティングシステムに合わせたテーマです。

上部のフィールドは、CTRL+1、CTRL+2、...、CTRL+8(送信ボタン)で移動できます。Macでは、ショートカットキーはCommandです。
ホットキーとフィールドは次のとおりです。
注意事項:
デフォルトでは、Packet SenderはUDP、TCP、SSLサーバーをランダムポートで有効にして起動します(右下のボタンで表示)。OSが許可する場合、カンマ区切りのポート番号を使用して任意の数のポートにバインドできます。例えば、0, 1000, 2000と指定すると、「ランダム」とポート1000、2000にバインドされます。

UDPボタンには3つのバインドされたポートが表示されます。そのうち1つはランダムです。

もう1つの設定は、すべてのリクエストに返信で応答することです。このリクエストをマクロにすることもできます。返信を入力する(または保存済みパケットを読み込む)フィールドがあります。
デフォルトでは、Packet Senderは任意のIPv4アドレスにバインドします。設定のこの領域では、代わりに任意のIPv6、または特定のIPアドレスにバインドさせることができます。
特定のアドレスへのバインドは、複数のNICがあり、特定のNICから通信(ブロードキャストパケットなど)を強制したい場合に非常に便利です。

一部のプロトコルでは、クライアントが送信する前にサーバーがデータを送信することを期待します(多くのtelnetサービスなど)。このワークフローは「受信してから送信」で有効にできます。
低速デバイス(プロセッサの弱い組み込みサーバーなど)がある場合、「接続後に500msの遅延」を有効にするとよいでしょう。これにより、低速サーバーがハンドラーを起動する時間が確保されます。
Packet Senderの内蔵サーバーは、IPv4またはIPv6のいずれかをサポートするように構成されていますが、両方を同時にサポートするわけではありません。クライアントの場合、Packet SenderのGUIとCLIは送信時に2つのモードをシームレスに切り替えます(IPv6の場合はスコープIDが必要になる場合があります)。右下のIPv4/IPv6トグルをクリックして切り替えます。
設定内で、Packet SenderのサーバーをカスタムIPアドレスに強制的にバインドすることもできます。これは複数のNICや複雑なIP設定を持つシステムで非常に便利です。存在しないアドレスにバインドするように指示すると、Packet Senderはエラーを発生させます。

Packet Senderには内蔵のサブネット計算機があります。ツールメニューにあります。

Wake-On-LAN(WOL)は、コンピュータをスリープから起こすためのプロトコルです。対象のMACアドレスに基づく特別なデータを含むブロードキャストパケットによってトリガーされます。詳細については、Wikipediaをご覧ください。
Packet Senderには内蔵のWOLジェネレーターがあります。ツールメニューにあります。

オプションを入力すると、メインGUIにWOL形式の正しいデータが入力されます。

WOLパケットの生成と送信を支援するCLIオプションもあります。```text packetsender --wol f8:23:66:30:e5:30 Sending broadcast Wake-On-LAN to target: F8:23:66:30:E5:30 on port 7 UDP (60360)://255.255.255.255:7 ff ff ff ff ff ff f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30
## SSL クライアントおよびサーバー
Packet Sender は、SSL を介した暗号化接続の確立をサポートしています。
これは GUI およびコマンドラインでサポートされています。
Packet Sender は、Windows で使用するために OpenSSL をバンドルしています。Mac および Linux では、Packet Sender はネイティブの SSL ライブラリを使用します。

SSL の注意点:
* 証明書のネゴシエーションは接続時に直ちに処理されます。
* デフォルトでは、Packet Sender はすべての SSL エラー(期限切れの証明書、間違ったホスト名、自己署名など)を無視します。
* Packet Sender は、証明書ネゴシエーションの進行状況をトラフィックログに出力します。
* Packet Sender は、使用された暗号化アルゴリズム(AES 128 など)をトラフィックログに出力します。
Packet Sender は、Windows でサーバーとして使用するための内部の "Snake Oil" 証明書をバンドルしています。証明書とキーは、パケットや設定と同じ場所にあります。
_注: 設定で証明書の場所を上書きすると、snake-oil 証明書も上書きされます。_
SSL エラーが発生した場合、Packet Sender はそれをトラフィックログに出力します。設定でとにかく続行する(デフォルト)場合、暗号化のネゴシエーションを続行します。それ以外の場合、接続は失敗で終了します。

## マルチキャスト (実験的)
Packet Sender のマルチキャストサポートは、IPv4 マルチキャストアドレスへの送信を試みるか、マルチキャストサブメニューから起動します。この機能は現在実験的であり、以下の既知の問題があります。
* Packet Sender はマルチキャスト参加時に IPv6 サポートを放棄します。
* 設定を再訪するか、IPv6 への送信を試みるまで放棄されたままになります。
* Wi-Fi では、マルチキャスト参加が実際に有効になるまでに 20 秒かかることがあります。
* Packet Sender には、スイッチの再起動などの一般的なエラーが発生した場合にマルチキャストグループに再参加するロジックはありません。
IPv6 マルチキャストサポートはありませんが、ロードマップには含まれています。IPv6 マルチキャストサポートを希望するスポンサーは、お気軽にお問い合わせください。
<a id="udptraffic"></a>
## UDP トラフィックジェネレーター (実験的)
通常の送信システムでは不十分な場合、ターゲット IP にパケットを大量に送信して、デバイスが処理できるかどうかを確認できます。これは GUI ツールバーの _ツール -> 強力なトラフィックジェネレーター_ にあります。
この機能は実験的であり、表示されるメトリクスは完全にテストされていません。より正確なテストを行うには、このツールの CLI バージョンを検討することをお勧めします。

# Packet Sender の機能
<a id="cloud"></a>
## Packet Sender Cloud
パケットセットは、無料の [Packet Sender Cloud](https://cloud.packetsender.com/) サービスを使用して、すばやく保存、取得、共有できます。クラウドは、コラボレーション、チュートリアル、エンドユーザー向けなど、パケットを公開して配布するためにも使用できます(URL 経由)。Packet Sender は、公開 URL を使用して公開パケットセットをインポートできます。
これを行う理由はさまざまです。
* すべてのパケットを準備しておき、新しい Packet Sender をインストールするときにすぐに取得できるようにする
* 異なるプロジェクトで作業するときに、パケットセットをすばやく切り替える
* ログインを共有する(許可されています)ことで、共同でパケットセットを生成する
* パケットセットの公開ページを持ち、他の人がすばやく見つけてインポートできるようにする

ネットワーク API を公開している場合、公開クラウドページを維持することは、パケットの詳細(IP、ポート、タイプなど)をユーザーに詳細に説明するよりもはるかに簡単です。さらに、そのページの更新は簡単です。
詳細については、次を参照してください。
https://cloud.packetsender.com/help
<a id="portable"></a>
## ポータブルモード
Packet Sender には「ポータブル」モードがあります。起動時に `portablemode.txt` を探し、そのランタイムディレクトリに不足している設定ファイルを生成します。これらのファイルは `packets.ini`、`ps_settings.ini`、`ps.key`、`ps.pem` です。
`portablemode.txt` を削除することで、一部のファイルをポータブルにし、残りを標準の場所に置くこともできます。
### コンソール専用ポータブルモードで削除できる DLL
GUI が必要ない場合は、以下の DLL を削除できます。
- Qt6Svg.dll
- Qt6Widgets.dll
- Qt6Gui.dll
- opengl32sw.dll
- D3Dcompiler_47.dll
- iconengines ディレクトリ
- imageformats ディレクトリ
- styles ディレクトリ
名前に `+` 文字を含む DLL は、`"` で囲まないと Windows のコマンドラインコピーで問題が発生する可能性があることに注意してください。
### 安全な接続が不要な場合に削除できる DLL
SSL が必要ない場合は、以下の DLL を削除できます。
- libcrypto-1_1-x64.dll
- libssl-1_1-x64.dll
Windows ユーザーのランタイムディレクトリは、.exe と同じ場所です。
Mac ユーザーの場合、このランタイムディレクトリは `PacketSender.app/Contents/MacOS` にあります。
INI ファイルが見つかった場合、`%APPDATA%` や `Library/Application Support` の代わりにそれらを使用します。
<a id="smartresponses"></a>
## スマートレスポンス
Packet Sender は最大 5 つのスマートレスポンスをサポートしています。
この機能を有効にするには、GUI ツールバーの _ファイル -> 設定_ に移動します。_スマートレスポンス_ タブに移動し、**スマートレスポンスを送信** チェックボックスを有効にします。

* Packet Sender は、選択したエンコーディング内でパケットを比較します。
* Packet Sender は、応答を送信する前にエンコーディングを変換します。
* 使用可能なエンコーディングは次のとおりです。
* Mixed ASCII -- ASCII と非表示文字をエンコードする標準の Packet Sender 方式
* HEX -- Packet Sender の通常の HEX エンコーディング
## マクロ
Packet Sender は、応答送信時に以下のマクロをサポートしています。
* {{DATE}} -- 現在の日付を "yyy-mm-dd" 形式で送信します。
* {{TIME}} -- 現在の時刻を "hh:mm:ss ap" 形式で送信します。
* {{UNIXTIME}} -- 現在のエポックタイムスタンプを送信します。
* {{COUNTER}} -- それを使用する各パケットに対してインクリメントするカウンターを送信します。起動時に 1 から始まります。
* {{RANDOM}} -- 32 ビットか 64 ビットかに応じて、0 ~ 32767 または 2147483647 の範囲の乱数を送信します(Windows のデフォルトインストーラーは 32 ビット。Mac は 64 ビット)。
* {{UNIQUE}} -- ランダムな文字列を送信します。内部の UUID を使用して生成します。
Packet Sender は、送信前にマクロを実際の値に置き換えます。
<a id="persistent"></a>
## 永続的 TCP および SSL
Packet Sender は、別の GUI ウィンドウを介して永続的な TCP および SSL 接続をサポートしています。これは、メインウィンドウのチェックボックスまたは設定ウィンドウから有効にできます。

### 永続的 TCP および SSL に関する注意:
* 任意の数の永続接続を作成できます。
* 以前に保存されたパケットをドロップダウンに読み込むことができます。
* 「Raw」ビューと「ASCII」ビューがあります。ASCII ビューは、Raw ビューでは表示されないデータのトラブルシューティングに役立ちます。
* トラフィックはメインウィンドウのトラフィックログにも保存されます。
* ファイルを永続接続にアップロードできます。これを使用する場合は、ログをオフにするとよいでしょう。
* 左下のタイマーは、有効なデータパケットが送受信されるとすぐに開始されます。接続が閉じられると停止します。
* Return キーを押してクイック送信するときに、オプションでキャリッジリターンを追加できます。これは、TCP/SSL 接続を介したコマンドプロンプトメニューに便利です。Packet Sender は、\r チェックボックスの以前の状態を記憶します。
* サーバーへの着信永続接続は、別の GUI ウィンドウを起動します。
* 再送信中、永続接続パケットは新しい GUI ウィンドウに引き継がれます。「再送信(1)」をクリックするとキャンセルされます。
永続接続はコマンドラインではサポートされていません。
<a id="http"></a>
# HTTP/HTTPS POST & GET
Packet Sender は、HTTP および HTTPS を介した POST/GET リクエストの送信をサポートしています。
プロトコルドロップダウンには、次のオプションが含まれています: HTTP GET、HTTP POST、HTTPS GET、HTTPS POST。HTTP(S) を選択すると、入力フィールドが更新されます: 名前、リクエスト、アドレス、データ(POST 選択時)、データ生成ボタン(POST 選択時)、ファイル読み込み(POST 選択時)。
## HTTP/HTTPS GET/POST リクエストの送信

* プロトコルドロップダウンから HTTP(S) GET または POST を選択
* *アドレス* フィールドにドメインまたは IP を入力
* *リクエスト* フィールドに必要に応じて URL パスを追加
* *ポート* フィールドのデフォルトは HTTP で 80、HTTPS で 443
* *永続的 TCP* をチェックすると、サーバーデータがより明確に表示されます(HTTP ヘッダーは自動的に削除されます)。
**リクエストフィールドに完全な URL を貼り付けることもでき、Packet Sender が解析して他のフィールドを自動入力します。**
### POST リクエストの場合:
* *データ* フィールドに手動でデータを追加できます。
* 形式: key=value
* 複数のパラメータの場合: key=value&key=value&key=value
* または、*データ生成* ボタンをクリック
<img src="https://assets.kitploit.com/production/public/readmes/4523/10d31cc53bcf0ba4d4a60d38c83a08231617142f8eec6b3cdb68f83964c3da06.png" width="400" height="284">
* データを追加するには、キーと値のパラメータを入力します。**+** ボタンをクリック。
* + ボタンで複数のパラメータを追加できます。
* パラメータの横の X ボタンをクリックして削除します。
* パラメータを追加したら、OK をクリックすると、データフィールドにデータが生成されます。
### 認証資格情報を追加するには:
<img src="https://assets.kitploit.com/production/public/readmes/4523/0592ee55242fa40c5eeb6dd0bd87956167c1461a7b224259a81ac065c055b9a0.png" width="800" height="339">
* ファイル -> 設定 -> HTTP に移動
* *認証ヘッダーを生成* をチェック
* *ホスト*、*UN/クライアント ID*、*PW/アクセス* を入力
* *HTTP 認証ヘッダー* をクリックして認証ヘッダーを生成
<a id="panelgen"></a>
# パネルジェネレーター
Packet Sender はコントロールパネルの生成をサポートしています。パネルは、スクリプト(パケット)が割り当てられたボタンで構成されています。ボタンをクリックすると、そのボタンで参照されているパケットが実行されます。
<img src="https://assets.kitploit.com/production/public/readmes/4523/933ef79915bb7e6ced4a6fff3b2bb9b98ef19619b5096476cb8d5496c487e3dd.png" width="400" height="358">
## パネルの読み込み
パネルは次の 2 つの方法のいずれかで作成できます。
* ツールバーの **パネル** をクリックし、スターターパネルを読み込むか、空のパネルプロジェクトを選択する
* スターターパネルを読み込むと、スターターとして割り当てられたパネルが読み込まれます。スターターとして設定されたパネルがない場合は、空のパネルプロジェクトが開きます。
* 2 つ以上の保存済みパケットを選択(ハイライト)し、**パネルを生成** ボタンをクリックする(パネルを生成ボタンは複数のパケットが選択されている場合にのみ表示されます)
Packet Sender は、コマンドラインオプション `--starterpanel` を使用して、スターターパネルでパネル専用モードで起動することをサポートしています。

## パネルのスクリプト作成
パネルのボタンのスクリプト作成を開始するには、パネルを開いて編集画面に移動する必要があります。パネルプロジェクトを開いたら、右下隅のボタンを確認します。このボタンに「表示中」と表示されている場合は、表示画面にいます。ボタンをクリックしてパネルを編集画面に移動します。
編集画面に入ると、ボタンとスクリプトをパネルに追加できます。
### ボタンスクリプト
ボタンスクリプトには、送信するパケットの名前が含まれます。
<img src="https://assets.kitploit.com/production/public/readmes/4523/a34e6ec6f371b15c13f41bf577df02c57b2fb3e695d88f572d90b96377d0c92e.png" width="400" height="360">
複数のパケットを 1 つのボタンに設定するには、各名前を新しい行に追加します。
<img src="https://assets.kitploit.com/production/public/readmes/4523/8bdccde0bc587dbd0d2a64f5126f1de47cdbd5a7ea0fb518122fb17bd876163a.png" width="400" height="358">
パネルジェネレーターは、パケット間に "delay:_秒数_" を追加することで、複数のパケット間に遅延を追加することをサポートしています。
<img src="https://assets.kitploit.com/production/public/readmes/4523/c9399a2ba90d0a747c851d15d8a7674eac530c5cb6f65b4182bb532872dbfbbb.png" width="400" height="359">
パネルジェネレーターは、"panel:_パネルID番号_" を追加することで、新しいパネルを読み込むスクリプトを追加することをサポートしています。ボタン上の以前のスクリプトがすべて実行されると、パネルは次のパネルに移行します。
<img src="https://assets.kitploit.com/production/public/readmes/4523/0b8c538ddacba7c2e1ebe089491b555d63875f425aa25bd3ebd693467c0c5aa2.png" width="400" height="358">
### ファイル/URL の追加
パネルジェネレーターは、ローカルに保存されたファイルまたは URL にリンクするボタンを追加することをサポートしています。
ファイル/URL ボタンは、編集画面で右下隅の *+* をクリックして追加できます。
* ファイルの場合: PC 上のファイルに移動し、ファイルを右クリックしてコピーを選択。これを Packet Sender の _URL またはファイル_ テキストボックスに貼り付けます。
* URL の場合: URL を Packet Sender の _URL またはファイル_ テキストボックスにコピーします。
* URL は http:// または https:// で始まる必要があります。

ファイルまたは URL をコピーすると、ボタンの名前を入力するよう求められます。ボタンはパネルの下部に表示されます。
編集画面でこれらのボタンをクリックすると、ファイル/URL リンクとボタンの名前を編集できます。また、ポップアップの **X** をクリックしてボタンを削除することもできます。

表示画面では、これらのボタンをクリックすると、デフォルトのブラウザで URL が起動されるか、ファイルが開かれます(ファイルタイプのデフォルトプログラムで)。

### パネルの編集/保存
パネルの編集画面では、ファイル、エクスポート、設定、ヘルプのメニューがあるツールバーが表示されます。このツールバーから、パネルプロジェクトの保存、エクスポート、インポート、読み込み、および現在のパネルプロジェクトの編集を行うことができます。
設定からは、次の操作ができます。
* パネル名を設定 - 現在のパネルプロジェクトの名前を変更するにはこれを選択します
* パネル ID を設定 - 現在のパネルプロジェクトに関連付けられた ID を変更するにはこれを選択します
_注: 使用中の ID を設定すると、そのパネルが置き換えられます_
* スターターパネル - 現在のパネルプロジェクトをスターターパネルとして設定するにはこれを選択します
* パネルを削除 - 現在のパネルプロジェクトのメニューが表示されます。削除するパネルプロジェクトを選択します。_注: パネルが閉じられるまで、ボタンとスクリプトは編集画面に保持されます_
# DTLS
現時点では、DTLS は Windows での GUI のみサポートされています。他のオペレーティングシステムでは、Qt6 を使用してソースからコンパイルすることで DTLS を有効にできる場合があります。
## 概要
このリポジトリには、DTLS (Datagram Transport Layer Security) プロトコル機能が含まれています。この機能には、サーバー検証やセッション永続化オプションなど、DTLS 接続を構成および管理するためのグラフィカルインターフェイスが追加されています。
## 機能
### メインウィンドウ

- **暗号スイート**: DTLS 通信に使用する暗号スイートを選択するドロップダウン。
- **サーバー共通名**: クライアント側検証用にサーバーの共通名を入力するフィールド。
- **永続セッション**: 永続チェックボックスを有効にすることで、最初のハンドシェイク後にセッションキーを保存するオプション。
- **オプションのサーバー検証**: ハンドシェイク中に二方向検証を有効にするオプション。
- **DTLS サーバーポート**: 接続の DTLS サーバーポートを定義するボタン。
#### 追加画像:

- 暗号スイート選択ドロップダウンの詳細ビュー。

- DTLS 中の永続接続ウィンドウ。

- DTLS サーバーの有効化/無効化のためのクリックボタン。
### 設定ウィンドウ
#### ネットワークタブ

- **簡易確認応答を送信**: 簡易確認応答の送信を有効にするチェックボックス。
- **DTLS サーバーを有効にする**: DTLS サーバーを有効にしてポートを選択するオプション。
- **証明書とキー**: SSL 設定と同様に証明書とキーを読み込むことができます。
#### スマートレスポンスタブ

- **スマートレスポンス**: スマートレスポンス機能は DTLS プロトコル上で動作します。
## Wireshark 統合
Wireshark によるスニッフィング:
### 通常接続

- Wireshark によってキャプチャされた通常の DTLS 接続の例。
### 永続接続

- Wireshark によってスニッフィングされた永続 DTLS 接続の例。
<a id="cli"></a>
# コマンドライン
Packet Sender は、コンピューターのコマンドラインから使用できます。
Windows では、拡張子 .com (`packetsender.com`) を使用してコマンドラインインターフェイスを使用します。オプションで、拡張子なしの `packetsender` を使用することもできます。拡張子 .exe を使用すると GUI が起動します。

Linux では、Packet Sender のコマンドラインシステムは他の Linux ユーティリティと同じパターンに従います。長い名前(--version など)と短い名前(-v など)があります。これらのオプションは任意の順序で配置でき、Packet Sender は正しく解析します。最後の 3 つのオプションは位置指定であり、最後に配置する必要があります。それらは IP、ポート、およびデータです。保存されたパケットを使用する場合、これらの最後のオプションはオプションです。```text
packetsender --help
Usage: C:\Program Files\PacketSender\packetsender.com [options] address port data
Packet Sender is a Network UDP/TCP/SSL/HTTP Test Utility by NagleCode
See https://PacketSender.com/ for more information.
Options:
-h, --help Displays help on commandline options.
--help-all Displays help including Qt specific options.
-v, --version Displays version information.
-q, --quiet Quiet mode. Only output received data.
-x, --hex Parse data-to-send as hex (default for
TCP/UDP/SSL).
-a, --ascii Parse data-to-send as mixed-ascii (default for http
and GUI).
-A, --ASCII Parse data-to-send as pure ascii (no \xx
translation).
-l, --listen Listen instead of send. Use bind options to specify
port/IP. Otherwise, dynamic/All.
-r, --response <ascii> Server mode response data in mixed-ascii. Macro
supported.
-w, --wait <ms> Wait up to <milliseconds> for a response after
sending. Zero means do not wait (Default).
-f, --file <path> Send contents of specified path. Max 10 MiB for
UDP, 100 MiB for TCP/SSL.
-b, --bind <port> Bind port. Default is 0 (dynamic).
-6, --ipv6 Force IPv6. Same as -B "::". Default is IP:Any.
-4, --ipv4 Force IPv4. Same as -B "0.0.0.0". Default is
IP:Any.
-B, --bindip <IP> Bind custom IP. Default is IP:Any.
-t, --tcp Send TCP (default).
-s, --ssl Send SSL and ignore errors.
-S, --SSL Send SSL and stop for errors.
-u, --udp Send UDP.
--http <http> Send HTTP. Allowed values are GET (default) and
POST
-n, --name <name> Send previously saved packet named <name>. Other
options overrides saved packet parameters.
--wol <mac> Send Wake-On-LAN / Magic Packet to <mac> and
(optional) <port>.
--bps <bps> Intense traffic. Calculate rate based on value of
bits per second.
--num <number> Intense traffic. Number of packets to send. Default
unlimited.
--rate <Hertz> Intense traffic. Rate. Ignored in bps option.
--usdelay <microseconds> Intense traffic. Resend delay. Used if rate is 0.
Ignored in bps option.
--max Intense traffic. Run as fast as possible.
Arguments:
address Destination address/URL. Optional for saved packet.
port Destination port/POST data. Optional for saved
packet.
data Data to send. Optional for saved packet.
CLIはWindows、Linux、MAC間で同じ形式に従います。
形式は次のとおりです: `packetsender [options] address port data````text packetsender -taw 500 mirrors.xmission.com 21 "USER anonymous\r\nPASS [email protected]\r\n" TCP (65505)://mirrors.xmission.com:21 55 53 45 52 20 61 6e 6f 6e 79 6d 6f 75 73 0d 0a 50 41 53 53 20 63 68 72 6f 6d 65 40 65 78 61 6d 70 6c 65 2e 63 6f 6d 0d 0a Response Time:5:51:37.042 pm Response HEX:32 32 30 2D 57 65 6C 63 6F 6D 65 20... Response ASCII:220-Welcome to XMission Internet...
## パケット待ち受けのCLI例(サーバーモード)
既存のバインドオプションを使用してサーバーを設定します。
- -b : ポート指定
- -B : IPアドレス指定
- -t/-u/-s : TCP、UDP、またはSSL指定
- -r : レスポンス送信(マクロ対応ASCII)
TCPを使用した動的ポートへのバインド```text
packetsender -l
TCP Server started on 0.0.0.0:52567
Use ctrl+c to exit server.
From: 127.0.0.1, Port:52568
Response Time:2024-06-04 19:01:53.198
Response HEX:48 65 6C 6C 6F
Response ASCII:Hello
From: 127.0.0.1, Port:52569
Response Time:2024-06-04 19:02:24.063
Response HEX:57 6F 72 6C 64
Response ASCII:World
UDPを使用してポート8080にバインド中```text packetsender -l -u -b 8080 UDP Server started on 0.0.0.0:8080 Use ctrl+c to exit server.
From: ::ffff:127.0.0.1, Port:49500 Response Time:2024-06-04 19:04:28.890 Response HEX:48 65 6C 6C 6F 20 55 44 50 20 50 61 63 6B 65 74 Response ASCII:Hello UDP Packet
UDPを使用してポート8080にバインドし、現在時刻で応答する```text
packetsender -l -u -b 8080 -r "{{TIME}}"
Loading response packet.
UDP Server started on 0.0.0.0:8080
Use ctrl+c to exit.
From: ::ffff:127.0.0.1, Port:59594
Response Time:2024-06-05 20:48:18.180
Response HEX:68 65 6C 6C 6F 20 70 61 63 6B 65 74 20 73 65 6E 64 65 72
Response ASCII:hello packet sender
From: You (Response), Port:59594
Response Time:2024-06-05 20:48:18.182
Response HEX:30 38 3a 34 38 3a 31 38 20 70 6d
Response ASCII:08:48:18 pm
IP 192.168.86.26、ポート54321にSSLを使用してバインド中```text packetsender -l -s -B 192.168.86.26 -b 54321 Binding to custom IP 192.168.86.26 Listening for SSL packets in server mode. SSL Server started on 192.168.86.26:54321 Use ctrl+c to exit server.
From: 192.168.86.26, Port:52588 Response Time:2024-06-04 19:11:30.726 Error/Info:Encrypted with AESGCM(256)
From: 192.168.86.26, Port:52588 Response Time:2024-06-04 19:11:30.726 Error/Info:Authenticated with RSA
From: 192.168.86.26, Port:52588 Response Time:2024-06-04 19:11:30.726 Error/Info:Peer cert issued by
From: 192.168.86.26, Port:52588 Response Time:2024-06-04 19:11:30.726 Error/Info:Our Cert issued by SnakeOil
From: 192.168.86.26, Port:52588 Response Time:2024-06-04 19:11:30.747 Response HEX:43 6F 6F 6C 20 53 53 4C Response ASCII:Cool SSL
## ポートとカスタムIP、IPv4、またはIPv6へのバインド例
Packet Sender コマンドラインは、-B オプションを使用してカスタムポートにバインドし、IPv4/6モードや複数のNICを強制できます。```text
packetsender -taw 3000 fe80::c07b:d517:e339:5a08 5005 "Hello\r"
packetsender -taw 3000 192.168.0.201 5005 "Hello\r"
packetsender -B 192.168.0.200 -taw 3000 192.168.0.201 5005 "Hello\r"
packetsender -B fe80::a437:399a:3091:266a%ethernet_32769 -taw 3000 fe80::c07b:d517:e339:5a08 5005 "Hello\r"
packetsender -B fe80::a437:399a:3091:266a -taw 3000 fe80::c07b:d517:e339:5a08 5005 "Hello\r"
コマンドラインには、SSLエラーを無視するか中止するかのオプションがあります。デフォルトは無視です。
Response Time:3:24:55.695 pm Response HEX:48 54 54 50 2f 31 2e 31 20 34 32 31 20 0d 0a 53 65 72 76 65 72 3a 20 6e 67 69 6e 78 2f 31 2e 31 30 2e 30 20 28 55 62 75 6e 74 75 29 0d Response ASCII:HTTP/1.1 421 \r\nServer: nginx/1.10.0 (Ubuntu)\r
## HTTPを使用したCLIの例
注意:これは内蔵のデフォルトパケットを使用します。```text
packetsender --name "HTTPS POST Params"
packetsender --http GET "https://httpbin.org/get"
packetsender --http POST "https://httpbin.org/post" "{}"
コマンドラインの高負荷トラフィックジェネレーターはGUI版とほぼ同じように動作しますが、より正確で、より多くの制御オプションがあり(そしてより強力です!)。
以下に使用方法の例を示します。これらの計算は「ベストエフォート」であることに注意してください。正常に動作しますが、プロセッサのスパイクやさまざまなネットワークの問題によってずれる可能性があります。スレッド処理はリアルタイムではなく、補正の試みも特に賢くはありません。
注意: Windowsの場合は ".com" ビルドを使用してください。そのため各例は packetsender.com になります。```text packetsender --rate 20 --name "My Awesome Packet" packetsender --bps 2000 --name "My Awesome Packet" packetsender --rate 0 --name "My Awesome Packet" packetsender --usdelay 2000000 --name "My Awesome Packet"
<a id="building"></a>
# Packet Senderのビルド
唯一の依存関係はQt SDKです。
## Windows/MAC用のPacket Senderのビルド
1. https://www.qt.io/download-open-source/ からQtインストーラーをダウンロードします。
1. コンパイラがない場合は、MingGWをインストールさせます。
1. プロジェクトPacketSender.proを開きます。
1. ビルド!
Windows版とMac版はQt 5.12を使用してビルドされました。Packet SenderはQt 6をサポートしていますが、cmakeはサポートしていません。
## Linux用のPacket Senderのビルド
以下はUbuntu 16.04向けのコマンドの手順です。ご利用のLinuxプラットフォームに合わせて調整してください。Packet Senderは標準のQt SDK以外に追加のライブラリを必要としません。標準のFedoraではビルドに問題があると聞いています。Fedoraに詳しい方がご存知でしたら、お知らせください。手順を追加します。
冒険心があれば、masterブランチからビルドしてください。masterブランチには最新の安定版ビルドが含まれています。developmentブランチは避けるべきでしょう。```bash
sudo apt-get update
sudo apt-get install qt5-default build-essential
wget https://github.com/dannagle/PacketSender/archive/(Version).tar.gz
tar -xzvf (Version).tar.gz
cd PacketSender-(Version)/src
qmake PacketSender.pro
make
実行するには:```text ./PacketSender
動作しない場合は、実行可能に設定する必要があるかもしれません。```text
chmod a+x PacketSender
機能が足りませんか?Packet Senderに追加するために私を雇うことができます。
ライセンスはGPL v2以降です。異なるライセンスが必要な場合は、私に連絡してください。 Packet Senderの一部のディストリビューションはOpenSSLを使用する場合があります。 最新のVPATは、このリポジトリ内のこちらで見つけることができます。
Packet SenderはDan Nagleによって作成され、© NagleCode, LLCによって公開されています。 - @NagleCode - PacketSender.com