本文整理汇总了Java中org.pcap4j.packet.UnknownPacket.Builder方法的典型用法代码示例。如果您正苦于以下问题:Java UnknownPacket.Builder方法的具体用法?Java UnknownPacket.Builder怎么用?Java UnknownPacket.Builder使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.pcap4j.packet.UnknownPacket
的用法示例。
在下文中一共展示了UnknownPacket.Builder方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: buildPacket
import org.pcap4j.packet.UnknownPacket; //导入方法依赖的package包/类
/**
* Build packet
*
* @throws java.net.UnknownHostException
*/
public void buildPacket() throws UnknownHostException {
int calculatedLength = getPacketLength();
String payloadString = payload.getPayloadType().getPadPayloadString(payload.getPayloadPattern(), calculatedLength * 2);
udpBuilder = new UdpPacket.Builder();
UnknownPacket.Builder unknownb = new UnknownPacket.Builder();
unknownb.rawData(payload.getPayloadPad(payloadString, calculatedLength));
Inet4Address srcAddr = (Inet4Address) InetAddress.getByAddress(
new byte[]{(byte) 0, (byte) 0, (byte) 0, (byte) 0}
);
Inet4Address dstAddr = (Inet4Address) InetAddress.getByAddress(
new byte[]{(byte) 0, (byte) 0, (byte) 0, (byte) 0}
);
udpBuilder.srcPort(UdpPort.getInstance((short) srcPort.value()))
.dstPort(UdpPort.getInstance((short) dstPort.value()))
.srcAddr(srcAddr)
.dstAddr(dstAddr)
.length((short) calculatedLength)
.payloadBuilder(unknownb)
.correctChecksumAtBuild(true)
.correctLengthAtBuild(false);
this.packet = udpBuilder.build();
}
示例2: buildIpV4
import org.pcap4j.packet.UnknownPacket; //导入方法依赖的package包/类
public static Packet buildIpV4(
MacAddress srcAddress_mac,
MacAddress dstAddrress_mac,
IpV4Packet.Builder builder_ipv4){
org.pcap4j.packet.Packet.Builder builder=null;
EtherType etherType=null;
Packet p=null;
if(ppp){
etherType=EtherType.PPPOE_SESSION_STAGE;
UnknownPacket.Builder pppBuilder=new UnknownPacket.Builder();
byte[] ipData=builder_ipv4.build().getRawData();
byte[] lenb=new byte[2];
ByteShortConvert.toByteArray((short) (ipData.length+2), lenb, 0);
byte[] pppHead=new byte[8];
System.arraycopy(pppHead_static, 0, pppHead, 0, pppHead.length);
System.arraycopy(lenb, 0, pppHead, 4, 2);
byte[] newData=new byte[pppHead.length+ipData.length];
System.arraycopy(pppHead, 0, newData, 0, pppHead.length);
System.arraycopy(ipData, 0, newData, 8, ipData.length);
pppBuilder.rawData(newData);
builder=pppBuilder;
}else {
etherType=EtherType.IPV4;
builder=builder_ipv4;
}
EthernetPacket.Builder etherBuilder = new EthernetPacket.Builder();
etherBuilder.dstAddr(dstAddrress_mac)
.srcAddr(srcAddress_mac)
.type(etherType)
.payloadBuilder(builder)
.paddingAtBuild(true);
p = etherBuilder.build();
return p;
}
示例3: buildPacket
import org.pcap4j.packet.UnknownPacket; //导入方法依赖的package包/类
/**
* Build packet
*/
public void buildPacket() {
int calculatedLength = getPacketLength() - 14;
String payloadString = payload.getPayloadType().getPadPayloadString(payload.getPayloadPattern(), calculatedLength * 2);
UnknownPacket.Builder unknownb = null;
if (calculatedLength != 0) {
unknownb = new UnknownPacket.Builder();
unknownb.rawData(payload.getPayloadPad(payloadString, calculatedLength));
}
ArrayList<TcpOption> options = new ArrayList<TcpOption>();
options.add(TcpEndOfOptionList.getInstance());
tcpBuilder = new TcpPacket.Builder();
tcpBuilder.dstPort(dstPort)
.srcPort(srcPort)
.sequenceNumber(sequenceNumber)
.acknowledgmentNumber(acknowledgmentNumber)
.dataOffset(dataOffset)
.reserved(reserved)
.urg(urg)
.ack(ack)
.psh(psh)
.rst(rst)
.syn(syn)
.fin(fin)
.window(window)
.checksum(checksum)
.urgentPointer(urgentPointer)
.options(options)
.padding(new byte[]{(byte) 0xaa})
.correctChecksumAtBuild(false)
.correctLengthAtBuild(false)
.paddingAtBuild(false);
if (calculatedLength != 0) {
tcpBuilder.payloadBuilder(unknownb);
}
this.packet = tcpBuilder.build();
}
示例4: gotPacket
import org.pcap4j.packet.UnknownPacket; //导入方法依赖的package包/类
@Override
public void gotPacket(Packet rawPacket) {
try {
LOG.info("Read raw " + rawPacket);
IpV4Packet ipPacket = rawPacket.get(IpV4Packet.class);
UdpPacket udpPacket = rawPacket.get(UdpPacket.class);
byte[] dhcpData = udpPacket.getPayload().getRawData();
InetSocketAddress remoteAddress = new InetSocketAddress(ipPacket.getHeader().getSrcAddr(), udpPacket.getHeader().getSrcPort().valueAsInt());
InetSocketAddress localAddress = new InetSocketAddress(ipPacket.getHeader().getDstAddr(), udpPacket.getHeader().getDstPort().valueAsInt());
DhcpRequestContext context = new DhcpRequestContext(interfaceAddresses, remoteAddress, localAddress);
DhcpMessage request = decoder.decode(ByteBuffer.wrap(dhcpData));
LOG.info("Read DHCP " + request);
DhcpMessage reply = service.getReplyFor(context, request);
if (reply == null)
return;
byte[] replyData = new byte[1536];
ByteBuffer buffer = ByteBuffer.wrap(replyData);
encoder.encode(buffer, reply);
replyData = Arrays.copyOf(replyData, buffer.position()); // Truncate array to writer position.
UnknownPacket.Builder dhcpBuilder = new UnknownPacket.Builder()
.rawData(replyData);
UdpPacket.Builder udpBuilder = new UdpPacket.Builder()
.payloadBuilder(dhcpBuilder)
.srcPort(udpPacket.getHeader().getDstPort())
.dstPort(udpPacket.getHeader().getSrcPort())
.correctChecksumAtBuild(true)
.correctLengthAtBuild(true);
IpV4Packet.Builder ipBuilder = new IpV4Packet.Builder()
.payloadBuilder(udpBuilder)
.srcAddr(null) // TODO
.dstAddr(null) // TODO
.protocol(IpNumber.UDP)
.correctChecksumAtBuild(true)
.correctLengthAtBuild(true)
.paddingAtBuild(true);
EthernetPacket.Builder ethernetBuilder = new EthernetPacket.Builder()
.payloadBuilder(ipBuilder)
.type(EtherType.IPV4)
.paddingAtBuild(true);
Packet replyPacket = ethernetBuilder.build();
// handle.sendPacket(replyPacket);
} catch (Exception e) {
LOG.error("DHCP failed", e);
}
}
示例5: sendSnmpMessage
import org.pcap4j.packet.UnknownPacket; //导入方法依赖的package包/类
public void sendSnmpMessage(
InetAddress dstAddr, int dstPort,
byte[] message
) throws SendPacketException {
InetAddress srcAddr;
int srcPort;
NetworkInterface sender;
SnmpContext context = agent.getContextfulWorkerPool().unregisterContext();
if (context != null) {
// response
sender = context.getGetter();
IpV4Packet ipV4Packet = context.getRequestPacket().get(IpV4Packet.class);
if (ipV4Packet != null) {
srcAddr = context.getRequestPacket().get(IpV4Packet.class).getHeader()
.getDstAddr();
}
else {
srcAddr = context.getRequestPacket().get(IpV6Packet.class).getHeader()
.getDstAddr();
}
srcPort = context.getRequestPacket().get(UdpPacket.class).getHeader()
.getDstPort().value() & 0xFFFF;
}
else {
// trap
if (dstAddr instanceof Inet4Address) {
sender = getNifByDstIpAddr((Inet4Address)dstAddr);
}
else {
sender = getNifByDstIpAddr((Inet6Address)dstAddr);
}
srcAddr = agent.getInetAddress();
srcPort = TRAP_SRC_PORT;
}
UnknownPacket.Builder unknownb = new UnknownPacket.Builder();
unknownb.rawData(message);
UdpPacket udpp
= UdpHelper.pack(
unknownb.build(),
UdpPort.getInstance((short)srcPort),
UdpPort.getInstance((short)dstPort),
srcAddr,
dstAddr
);
sendL4Packet(udpp, srcAddr, dstAddr, sender);
}