最近、Jnetpcapを使用してネットワーク経由で生のパケットを送受信しています。
Jnetpcapは、によるパケットの送信を提供しますPcap.sendPacket()
。このメソッドは、送信するrawバッファーまたはバイトを取得します。
一方、org.jnetpcap.protocol.*
プロトコルヘッダーをラップするクラスがあり、それらを使用してキャプチャされたパケットをデコードできます。
以下のコードを使用してIp4
パケットを作成すると、NullPointerExceptionが発生します。
import org.jnetpcap.protocol.network.Ip4;
public class Test {
public static void main(String[] args) {
Ip4 ip4 = new Ip4();
ip4.ttl(10);
}
}
エラー:
Exception in thread "main" java.lang.NullPointerException
at org.jnetpcap.nio.JBuffer.check(Unknown Source)
at org.jnetpcap.nio.JBuffer.setUByte(Unknown Source)
at org.jnetpcap.protocol.network.Ip4.ttl(Unknown Source)
at jaeger.Test.main(Test.java:17)
どうすればそのパケットを作成してから送信できPcap.sendPacket()
ますか?
注:パケットをバイト単位で準備することにはあまり興味がありません... C / C ++ libpcapとJpcapには機能がありますが、Jnetpcapを使用したいと思います。