問題タブ [raw-ethernet]
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.
sockets - Go言語を使用してイーサネットヘッダー付きのRawパケットを送信する
Go 言語の raw ソケットを介して、カスタム イーサネット ヘッダーを含む raw TCP パケットを送信しようとしています。同様のコードをc 言語で再現しようとしています。
ただし、次のエラーが発生します。
どなたかお知恵をお貸し頂ければ幸いです。
qt - Qt を使用して生のイーサネットを読み取る
Qt ベースの C++ Windows アプリケーションを使用して読み取り、デコードする必要がある raw (レイヤー 2) イーサネット パケットを送信するデバイスがあります。私は winpcap ライブラリを使用してそれを行うことができると信じていますが、可能であれば Qt の方法を好むでしょう。
c - raw イーサネット フレームで sendmsg/sendmmsg を使用する
C を使用して、sendmsg 経由で生のイーサネット パケットを送信しようとしています。このコードは、正常に生のパケット ソケットを開き、1 つのバイト配列 (char message[]) で struct iovec を埋めようとし、次に struct msghdr を宛先アドレス、アドレス長、および struct iovec を含む struct iovec へのポインタで埋めます。メッセージ。sendmsg() は呼び出しごとに EINVAL を返しますが、どの引数が無効かわかりません。(このコードを読みやすくするために、いくつかの perror() 呼び出しを削除しました。出力は「無効な引数」です。)
sendmsg() が生のソケットでどのように機能するかの例を見つけることができませんでしたが、sendto() を使用した同様のコードは期待どおりに機能します。そのコードでは、ヘッダーとプロトコル情報を含めてイーサネット フレームを明示的に形成しますが、sendmsg() 呼び出しでは必要ないことを理解していますか? また、message.iov_base が、14 バイトのヘッダーを含む明示的に形成されたイーサネット フレームを含むバッファーを指すようにしようとしましたが、sendmsg() もそれを妨げます。
sendmsg() と sendmmsg() は生のイーサネット フレームで動作しますか? 無効にしている iovec について私が見逃しているものはありますか?
tcp - プログラミングにおけるイーサネットと TCP/IP プロトコルの違いは?
ソケットがイーサネット用に開いているとしますが、それは TCP/IP のソケットと同じですか? いくつかの既存のコードでは、イーサネット プロトコルをサポートしていることがわかりました。これは、TCP ソケット クライアントを使用してこのイーサネット ソケットに接続できることを意味しますか。
私は混乱しています、助けてください。
前もって感謝します
c++ - Linux でのイーサネット フレームの到着について通知を受ける
UNIX システム (eth0 ポート) にイーサネット フレームが到着したときに通知を受ける必要があります。関数をどこかに登録する方法はありますか? 現在、「sys/socket.h」-Library を使用していますが、自分自身を登録する関数が見つかりません。
wireshark - 生のイーサネット パケットの特定のバイトに対する Wireshark 表示フィルタ
15 番目のバイト (つまり、14 バイトのヘッダーの後の最初のペイロード バイト) が特定の値であるパケットをフィルタリングしようとしてい0x00
ます0x01
。
私が興味を持っているパケットは生のイーサネットです。つまり、論理リンク制御層にあるので、プロトコルとして LLC もフィルタリングします。
これが私が試したものです:
これは緑色になるので、構文が正しいと確信しています。プロトコルが LLC であるパケットのみを表示しますが、15 番目のバイトが0x02
回避したいパケットも通過させます
15番目のバイト値を正常にターゲットにする方法、または別の言い方をすれば、ペイロードの1番目のバイト値をターゲットにする方法はありますか?
パケットの例 (wireshark からコピー) の 15 番目のバイトは0x00
次のとおりです。
15 番目のバイトが次のパケットの例0x01
:
これらのパケットの両方をwiresharkに表示させたい
15 番目のバイトが次のような 3 番目のタイプのパケットがあります0x02
。
フィルタで除外したいこのタイプのパケット。上記のフィルタでは、これらの0x02
パケットが引き続き表示されます。