当前位置: 首页>>代码示例>>Java>>正文


Java JPacket.getHeader方法代码示例

本文整理汇总了Java中org.jnetpcap.packet.JPacket.getHeader方法的典型用法代码示例。如果您正苦于以下问题:Java JPacket.getHeader方法的具体用法?Java JPacket.getHeader怎么用?Java JPacket.getHeader使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.jnetpcap.packet.JPacket的用法示例。


在下文中一共展示了JPacket.getHeader方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: modifyPacket

import org.jnetpcap.packet.JPacket; //导入方法依赖的package包/类
/**
 * In this function the packet is pseudonymization and checksums are recalculated as configured.
 *
 * @param packet the captured packet
 */
public void modifyPacket(JPacket packet) {
    if ((!DNS_ONLY) || isDns(packet)) {
        // If the original ip4 checksum is not valid, the checksum should not be modified.
        boolean originalChecksumValid = true;

        if (_pseudonymizerMap.containsKey(JProtocol.IP4) && packet.hasHeader(Ip4.ID)) {
            Ip4 ip4 = packet.getHeader(new Ip4());
            originalChecksumValid = ip4.isChecksumValid();
            pseudonymizeIP4(_pseudonymizerMap.get(JProtocol.IP4), ip4);
        } else if (_pseudonymizerMap.containsKey(JProtocol.IP6) && packet.hasHeader(Ip6.ID)) {
            Ip6 ip6 = packet.getHeader(new Ip6());
            pseudonymizeIP6(_pseudonymizerMap.get(JProtocol.IP6), ip6);
        }
        // Checksum updates.
        recalculateChecksums(packet, originalChecksumValid);
    }
}
 
开发者ID:NCSC-NL,项目名称:PEF,代码行数:23,代码来源:JNetPcapPacketModifier.java

示例2: recalculateChecksums

import org.jnetpcap.packet.JPacket; //导入方法依赖的package包/类
/**
 * Recalculates the checksums as configured.
 *
 * @param packet the captured packet
 * @param originalChecksumValid boolean that holds whether the checksum was valid before modification.
 */
private void recalculateChecksums(final JPacket packet, final boolean originalChecksumValid) {
    for (int checksumType : _checksumList) {
        // The ip4 or ip6 checksum should be updated first.
        if (checksumType == Ip4.ID && originalChecksumValid) {
            if (packet.hasHeader(Ip4.ID)) {
                Ip4 ip4 = packet.getHeader(new Ip4());
                ip4.recalculateChecksum();
            }
        }
        if (checksumType == Udp.ID && packet.hasHeader(Udp.ID)) {
            recalulateUdpChecksum(packet);
        }
        if (checksumType == Tcp.ID && packet.hasHeader(Tcp.ID)) {
            Tcp tcp = packet.getHeader(new Tcp());
            tcp.recalculateChecksum();
        }
        if (checksumType == Icmp.ID && packet.hasHeader(Icmp.ID)) {
            Icmp icmp = packet.getHeader(new Icmp());
            icmp.recalculateChecksum();
        }
    }
}
 
开发者ID:NCSC-NL,项目名称:PEF,代码行数:29,代码来源:JNetPcapPacketModifier.java

示例3: updateFrame_From_Packet

import org.jnetpcap.packet.JPacket; //导入方法依赖的package包/类
public void updateFrame_From_Packet(JPacket local_jPacket){
	
	IEC61850_GOOSE_Header goose_header = local_jPacket.getHeader( new IEC61850_GOOSE_Header());
	
	this.test = goose_header.test();
	this.ndsCom = goose_header.ndsCom();
	this.stNum = goose_header.stNum();
	this.sqNum = goose_header.sqNum();
	this.timeAllowedToLive = goose_header.timeAllowedToLive();
	
	// Reading the time in the header updates the time quality information
	this.utc_time = goose_header.utc();
	
	this.leapSecondsKnown = goose_header.leapSecondsKnown;
	this.clockFailure = goose_header.clockFailure;
	this.clockNotSynchronized = goose_header.clockNotSynchronized;
	this.timeAccuracy = goose_header.timeAccuracy;
	
	// We decode the data
	gooseData.decodeData(goose_header.gooseData());
}
 
开发者ID:pvenne,项目名称:jgoose,代码行数:22,代码来源:IEC61850_GOOSE_Frame.java

示例4: recalulateUdpChecksum

import org.jnetpcap.packet.JPacket; //导入方法依赖的package包/类
/**
 * Within JNetPcap the UDP checksum recalculation does not work.
 * It is reimplemented here.
 *
 * @param packet packet to recalculate the udp checksum over.
 */
private void recalulateUdpChecksum(final JPacket packet) {
    final Udp udp = packet.getHeader(new Udp());
    udp.checksum(0); // The checksum is left out of the calculation but reset for correctness.
    final byte[] mergedBytes;
    if (packet.hasHeader(Ip4.ID)) {
        Ip4 ip4 = packet.getHeader(new Ip4());
        mergedBytes = constructIp4UdpChecksumByteArray(ip4, udp);
    } else {
        Ip6 ip6 = packet.getHeader(new Ip6());
        mergedBytes = constructIp6UdpChecksumByteArray(ip6, udp);
    }
    udp.checksum(ByteBuffer.wrap(calculateInternetChecksum(mergedBytes)).order(ByteOrder.BIG_ENDIAN).getShort());
}
 
开发者ID:NCSC-NL,项目名称:PEF,代码行数:20,代码来源:JNetPcapPacketModifier.java

示例5: isDns

import org.jnetpcap.packet.JPacket; //导入方法依赖的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;
}
 
开发者ID:NCSC-NL,项目名称:PEF,代码行数:18,代码来源:JNetPcapPacketModifier.java

示例6: testIp4CRC16Pkt1

import org.jnetpcap.packet.JPacket; //导入方法依赖的package包/类
/**
 * Test ip4 cr c16 pkt1.
 */
public void testIp4CRC16Pkt1() {

	JPacket packet = super.getPcapPacket(TestUtils.L2TP, 0);
	Ip4 ip = packet.getHeader(new Ip4());

	int computed = Checksum.inChecksum(ip, 0, ip.size());

	System.out.printf("1chunk=%x\n", computed);
	System.out.printf("shoudbe=%x checksum=%x\n",
			Checksum.inChecksumShouldBe(ip.checksum(), computed),
			ip.checksum());

	assertTrue(ip.isChecksumValid());
}
 
开发者ID:pvenne,项目名称:jgoose,代码行数:18,代码来源:TestTcpIp.java

示例7: testIp4CRC16Pkt2

import org.jnetpcap.packet.JPacket; //导入方法依赖的package包/类
/**
 * Test ip4 cr c16 pkt2.
 */
public void testIp4CRC16Pkt2() {

	JPacket packet = super.getPcapPacket(TestUtils.L2TP, 1);
	Ip4 ip = packet.getHeader(new Ip4());

	assertEquals(ip.calculateChecksum(), ip.checksum());
}
 
开发者ID:pvenne,项目名称:jgoose,代码行数:11,代码来源:TestTcpIp.java

示例8: testIp4CRC16Pkt50

import org.jnetpcap.packet.JPacket; //导入方法依赖的package包/类
/**
 * Test ip4 cr c16 pkt50.
 */
public void testIp4CRC16Pkt50() {

	JPacket packet = super.getPcapPacket(TestUtils.L2TP, 46 - 1);
	Ip4 ip = packet.getHeader(new Ip4());

	int crc;
	assertEquals(ip.checksum(), ip.calculateChecksum());

	// System.out.printf("ip.crc=%x computed=%x\n", ip.checksum(), crc);
}
 
开发者ID:pvenne,项目名称:jgoose,代码行数:14,代码来源:TestTcpIp.java

示例9: testTcpOptions

import org.jnetpcap.packet.JPacket; //导入方法依赖的package包/类
/**
 * Test tcp options.
 * 
 * <pre>
 * 
 * </pre>
 */
public void testTcpOptions() {
	JPacket packet = TestUtils.getPcapPacket(SMALL_IMAP, 1 - 1);
	System.out.println(packet.getState().toDebugString());
	System.out.println(packet.toString());

	Tcp tcp = packet.getHeader(new Tcp());
	Tcp.Timestamp ts = new Tcp.Timestamp();

	if (tcp.hasSubHeader(ts)) {
		System.out.printf("tsval=%d tsecr=%d%n", ts.tsval(), ts.tsecr());
	}
}
 
开发者ID:pvenne,项目名称:jgoose,代码行数:20,代码来源:TestTcpIp.java

示例10: testSendPacketUsingJBuffer

import org.jnetpcap.packet.JPacket; //导入方法依赖的package包/类
/**
 * Test send packet using j buffer.
 * 
 * @throws UnknownHostException
 *           the unknown host exception
 */
public void testSendPacketUsingJBuffer() throws UnknownHostException {
	JPacket packet =
	    new JMemoryPacket(JProtocol.ETHERNET_ID,
	        "0016b6c13cb10021 5db0456c08004500 "
	            + "00340e8e40008006 9c54c0a80165d822 "
	            + "b5b1c1cf005020ce 4303000000008002 "
	            + "2000d94300000204 05b4010303020101 " + "0402");

	InetAddress dst = InetAddress.getByName("201.1.1.1");
	InetAddress src = InetAddress.getByName("192.168.1.1");

	Ip4 ip = packet.getHeader(new Ip4());
	Tcp tcp = packet.getHeader(new Tcp());

	ip.destination(dst.getAddress());
	ip.source(src.getAddress());

	ip.checksum(ip.calculateChecksum());
	tcp.checksum(tcp.calculateChecksum());
	packet.scan(Ethernet.ID);

	System.out.println(packet);
	List<PcapIf> alldevs = new ArrayList<PcapIf>(); // Will be filled with NICs
	StringBuilder errbuf = new StringBuilder(); // For any error msgs
	/***************************************************************************
	 * First get a list of devices on this system
	 **************************************************************************/
	int r = Pcap.findAllDevs(alldevs, errbuf);
	if (r == Pcap.NOT_OK || alldevs.isEmpty()) {
		System.err.printf("Can't read list of devices, error is %s", errbuf
		    .toString());
		return;
	}
	PcapIf device = alldevs.get(0); // We know we have atleast 1 device
	/***************************************************************************
	 * Second we open a network interface
	 **************************************************************************/
	int snaplen = 64 * 1024; // Capture all packets, no trucation
	int flags = Pcap.MODE_NON_PROMISCUOUS; // capture all packets
	int timeout = 10 * 1000; // 10 seconds in millis
	Pcap pcap =
	    Pcap.openLive(device.getName(), snaplen, flags, timeout, errbuf);
	System.out.println("Device ->" + device.getName());

	try {
		if (pcap.sendPacket(packet) != Pcap.OK) {
			System.err.println(pcap.getErr());
		}
	} finally {
		/*************************************************************************
		 * Lastly we close
		 ************************************************************************/
		pcap.close();
		
		
	}
}
 
开发者ID:pvenne,项目名称:jgoose,代码行数:64,代码来源:TestTransmitter.java

示例11: isBound

import org.jnetpcap.packet.JPacket; //导入方法依赖的package包/类
/**
 * Checks if is bound.
 * 
 * @param packet
 *          the packet
 * @param offset
 *          the offset
 * @return true, if is bound
 * @see org.jnetpcap.packet.JBinding#isBound(org.jnetpcap.packet.JPacket, int)
 */
public boolean isBound(JPacket packet, int offset) {

	packet.getHeader(header);

	return header.isHeaderTruncated() == false && annotatedBound.isBound(packet, offset, header);
}
 
开发者ID:pvenne,项目名称:jgoose,代码行数:17,代码来源:AnnotatedBinding.java


注:本文中的org.jnetpcap.packet.JPacket.getHeader方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。