本文整理汇总了Java中org.jnetpcap.protocol.tcpip.Tcp.destination方法的典型用法代码示例。如果您正苦于以下问题:Java Tcp.destination方法的具体用法?Java Tcp.destination怎么用?Java Tcp.destination使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.jnetpcap.protocol.tcpip.Tcp
的用法示例。
在下文中一共展示了Tcp.destination方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: isDns
import org.jnetpcap.protocol.tcpip.Tcp; //导入方法依赖的package包/类
/**
* Check for DNS packets if required that only DNS packets should be handled.
*
* @param packet the captured packet.
* @return true if the packet is a dns packet.
*/
private boolean isDns(final JPacket packet) {
if (packet.hasHeader(Udp.ID)) {
final Udp udp = packet.getHeader(new Udp());
return (udp.source() == 53 || udp.destination() == 53);
}
else if (packet.hasHeader(Tcp.ID)) {
final Tcp tcp = packet.getHeader(new Tcp());
return (tcp.source() == 53 || tcp.destination() == 53);
}
return false;
}
示例2: creatPacket
import org.jnetpcap.protocol.tcpip.Tcp; //导入方法依赖的package包/类
private JMemoryPacket creatPacket(final InetAddress destIp, final InetAddress sourceIP) {
final int packetSize = 500;
final JMemoryPacket packet = new JMemoryPacket(packetSize);
packet.order(ByteOrder.BIG_ENDIAN);
packet.setUShort(0 + 12, 0x800); // ethernet.type field
packet.scan(Ethernet.ID);
final Ethernet ethernet = packet.getHeader(new Ethernet());
ethernet.destination(destIp.getAddress());
ethernet.source(sourceIP.getAddress());
packet.setUByte(14, 0x04 | 0x05); // ip v4
packet.scan(Ethernet.ID);
// final JPacket sendPacket = new JMemoryPacket(JProtocol.ETHERNET_ID, " 001801bf 6adc0025 4bb7afec 08004500 "
// + " 0041a983 40004006 d69ac0a8 00342f8c " + " ca30c3ef 008f2e80 11f52ea8 4b578018 "
// + " ffffa6ea 00000101 080a152e ef03002a " + " 2c943538 322e3430 204e4f4f 500d0a");
final Ip4 sendPacketIP = packet.getHeader(new Ip4());
// sendPacketIP.destination(destIp.getAddress());
sendPacketIP.type(0x06); //TCP
sendPacketIP.length(packetSize - ethernet.size());
sendPacketIP.ttl(1);
packet.setUByte(46, 0x50); // TCP
packet.scan(Ethernet.ID);
final Tcp sendPacketTcp = packet.getHeader(new Tcp());
sendPacketTcp.destination(80);
sendPacketIP.checksum(sendPacketIP.calculateChecksum());
sendPacketTcp.checksum(sendPacketTcp.calculateChecksum());
final Payload payload = packet.getHeader(new Payload());
payload.setByteArray(1, "Neko".getBytes());
return packet;
}
示例3: converge
import org.jnetpcap.protocol.tcpip.Tcp; //导入方法依赖的package包/类
/**
* 将数据包汇聚成网络流
* @param data
*/
private void converge(List<PacketInfo> data) {
for (PacketInfo packetInfo : data) {
PcapPacket packet = packetInfo.getPacket();
Ip4 ip4 = new Ip4();
Tcp tcp = new Tcp();
if (!packet.hasHeader(ip4) || !packet.hasHeader(tcp)) continue;
NetFlow netFlow = find(packetInfo);
if (tcp.flags_SYN()) { // SYN 作为TCP建立连接的标识,创建网络流
if (netFlow == null) {
netFlow = new NetFlow(ip4.sourceToInt(), ip4.destinationToInt(),
tcp.source(), tcp.destination());
netFlow.add(packetInfo);
netFlows.add(netFlow);
}
} else if (tcp.flags_FIN()) {
if (netFlow != null) {
netFlow.setClosed(true); // FIN作为TCP结束标识,关闭网络流
}
} else { // 加入到已存在的网络流中
if (netFlow != null && !netFlow.isClosed()) {
netFlow.add(packetInfo);
}
}
}
}
示例4: contain
import org.jnetpcap.protocol.tcpip.Tcp; //导入方法依赖的package包/类
/**
* 判断数据包是否属于当前网络流
* @param packetInfo
* @return
*/
public boolean contain(PacketInfo packetInfo) {
boolean b = false;
PcapPacket packet = packetInfo.getPacket();
Tcp tcp = new Tcp();
Ip4 ip4 = new Ip4();
if (packet.hasHeader(ip4)
&& packet.hasHeader(tcp) ) {
if (ip4.sourceToInt() == srcIp
&& ip4.destinationToInt() == dstIp
&& tcp.source() == srcPort
&& tcp.destination() == dstPort) {
packetInfo.setReversed(false);
b = true;
} else if (ip4.sourceToInt() == dstIp
&& ip4.destinationToInt() == srcIp
&& tcp.source() == dstPort
&& tcp.destination() == srcPort) {
packetInfo.setReversed(true);
b = true;
}
}
return b;
}
示例5: TCPPacket
import org.jnetpcap.protocol.tcpip.Tcp; //导入方法依赖的package包/类
public TCPPacket(PcapPacket packet) {
packetTime = Instant.now();
Ip4 ip4 = packet.getHeader(new Ip4());
Tcp tcp = packet.getHeader(new Tcp());
connectionInfo = new TCPConnectionInfo(ip4.sourceToInt(), tcp.source(), ip4.destinationToInt(), tcp.destination());
seqNumber = tcp.seq();
ackNumber = tcp.ack();
tcpFlags = tcp.flags();
JBuffer storage = new JBuffer(JMemory.Type.POINTER);
JBuffer packetPayload = tcp.peerPayloadTo(storage);
payload = new byte[packetPayload.size()];
packetPayload.getByteArray(0, payload);
}
示例6: filter
import org.jnetpcap.protocol.tcpip.Tcp; //导入方法依赖的package包/类
@Override
public Direction filter(Ip4 ip4, Tcp tcp) {
if (tcp.source() == inboundPort)
return Direction.Inbound;
if (tcp.destination() == outboundPort)
return Direction.Outbound;
return Direction.Skip;
}
示例7: bindToTcp
import org.jnetpcap.protocol.tcpip.Tcp; //导入方法依赖的package包/类
/**
* Bind to tcp.
*
* @param packet
* the packet
* @param tcp
* the tcp
* @return true, if successful
*/
@Bind(to = Tcp.class)
public static boolean bindToTcp(JPacket packet, Tcp tcp) {
return tcp.destination() == 3868 || tcp.source() == 3868;
}