• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java ArpOperation类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中org.pcap4j.packet.namednumber.ArpOperation的典型用法代码示例。如果您正苦于以下问题:Java ArpOperation类的具体用法?Java ArpOperation怎么用?Java ArpOperation使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



ArpOperation类属于org.pcap4j.packet.namednumber包,在下文中一共展示了ArpOperation类的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: _getPacketBuilder4IPv4

import org.pcap4j.packet.namednumber.ArpOperation; //导入依赖的package包/类
private EthernetPacket.Builder _getPacketBuilder4IPv4(InetAddress remoteAddress, MacAddress localMacAddress, InetAddress
        localIpAdress) {
    ArpPacket.Builder arpBuilder = new ArpPacket.Builder();
    arpBuilder
            .hardwareType(ArpHardwareType.ETHERNET)
            .protocolType(EtherType.IPV4)
            .hardwareAddrLength((byte) MacAddress.SIZE_IN_BYTES)
            .protocolAddrLength((byte) ByteArrays.INET4_ADDRESS_SIZE_IN_BYTES)
            .srcHardwareAddr(localMacAddress)
            .srcProtocolAddr(localIpAdress)
            .dstHardwareAddr(MacAddress.ETHER_BROADCAST_ADDRESS)
            .operation(ArpOperation.REQUEST)
            .dstProtocolAddr(remoteAddress);


    EthernetPacket.Builder etherBuilder = new EthernetPacket.Builder();
    etherBuilder.dstAddr(MacAddress.ETHER_BROADCAST_ADDRESS)
            .srcAddr(localMacAddress)
            .type(EtherType.ARP)
            .payloadBuilder(arpBuilder)
            .paddingAtBuild(true);

    return etherBuilder;
}
 
开发者ID:gaoxingliang,项目名称:mac-address-detector-java,代码行数:25,代码来源:MacAddressHelper.java


示例2: processArpPacket

import org.pcap4j.packet.namednumber.ArpOperation; //导入依赖的package包/类
public static void processArpPacket(Packet packet, PcapFileSummary pcapFileSummary) {
    if (packet == null) {
        return; // skip empty packets
    }
    log.trace("Converting to ARP packet");
    try {
        ArpPacket arpPacket = ArpPacket.newPacket(packet.getRawData(), 0, packet.length());
        ArpPacket.ArpHeader arpHeader = arpPacket.getHeader();
        ArpOperation arpOperation = arpHeader.getOperation();
        InetAddress sourceIp = arpHeader.getSrcProtocolAddr();
        MacAddress sourceMac = arpHeader.getSrcHardwareAddr();

        if (arpOperation == ArpOperation.REQUEST) {
            // only add / check the source addresses for an ARP request
            //IpMacTrackerResult result = pcapFileSummary.ipMacTracker.query(sourceIp.getHostAddress(), sourceMac.toString());
        }

    } catch (IllegalRawDataException e) {
        log.error("Exception occurred while processing a packet. Exception was: " + e);
    }
}
 
开发者ID:rmcnew,项目名称:LiquidFortressPacketAnalyzer,代码行数:22,代码来源:ArpPacketProcessor.java


示例3: shouldCapture

import org.pcap4j.packet.namednumber.ArpOperation; //导入依赖的package包/类
/**
 * Checks if the given {@link Packet} should be captured.
 *
 * @param packet The packet to be checked
 * @return Returns true, if the packet should be captured, otherwise false
 */
private boolean shouldCapture(final Packet packet) {
    if (packet.contains(ArpPacket.class)) {
        ArpPacket arpPacket = packet.get(ArpPacket.class);
        if (arpPacket.getHeader().getOperation().equals(ArpOperation.REQUEST)) {
            return true;
        }
    }
    if (packet.contains(UdpPacket.class)) {
        final UdpPacket udpPacket = packet.get(UdpPacket.class);
        if (UdpPort.BOOTPS == udpPacket.getHeader().getDstPort()) {
            return true;
        }
    }
    return false;
}
 
开发者ID:openhab,项目名称:openhab2-addons,代码行数:22,代码来源:PacketCapturingService.java


示例4: arpTest

import org.pcap4j.packet.namednumber.ArpOperation; //导入依赖的package包/类
/**
 * This is a specific test which is not related to standalone Java SDK
 */
@Test
@Ignore
public void arpTest() {
    List<Port> ports = client.getPorts();
    Port port = ports.get(0);
    Port port1 = ports.get(1);
    client.acquirePort(port.getIndex(), true);
    client.acquirePort(port1.getIndex(), true);
    
    client.serviceMode(port.getIndex(), true);
    client.serviceMode(port1.getIndex(), true);

    client.removeRxQueue(port.getIndex());
    client.setRxQueue(port.getIndex(), 5);
        
    EthernetPacket pkt = buildArpPkt();
    client.sendPacket(port.getIndex(), pkt);

    Predicate<EthernetPacket> arpReplyFilter = etherPkt -> {
        if(etherPkt.contains(ArpPacket.class)) {
            ArpPacket arp = (ArpPacket) etherPkt.getPayload();
            if (ArpOperation.REPLY.equals(arp.getHeader().getOperation())) {
                return true;
            }
        }
        return false;
    };
    List<EthernetPacket> pkts = client.getRxQueue(port.getIndex(), arpReplyFilter);
    client.removeRxQueue(port.getIndex());
    client.serviceMode(port.getIndex(), false);
    client.serviceMode(port1.getIndex(), false);
    Assert.assertTrue(pkts.size() > 0);
}
 
开发者ID:cisco-system-traffic-generator,项目名称:trex-java-sdk,代码行数:37,代码来源:TRexClientTest.java


示例5: buildArpPkt

import org.pcap4j.packet.namednumber.ArpOperation; //导入依赖的package包/类
private static EthernetPacket buildArpPkt() {
    ArpPacket.Builder arpBuilder = new ArpPacket.Builder();
    MacAddress srcMac = MacAddress.getByName("00:50:56:94:21:df");
    try {
        String strSrcIpAddress = "192.168.9.27";
        String strDstIpAddress = "192.168.9.28";
        arpBuilder
                .hardwareType(ArpHardwareType.ETHERNET)
                .protocolType(EtherType.IPV4)
                .hardwareAddrLength((byte) MacAddress.SIZE_IN_BYTES)
                .protocolAddrLength((byte) ByteArrays.INET4_ADDRESS_SIZE_IN_BYTES)
                .operation(ArpOperation.REQUEST)
                .srcHardwareAddr(srcMac)
                .srcProtocolAddr(InetAddress.getByName(strSrcIpAddress))
                .dstHardwareAddr(MacAddress.ETHER_BROADCAST_ADDRESS)
                .dstProtocolAddr(InetAddress.getByName(strDstIpAddress));
    } catch (UnknownHostException e) {
        throw new IllegalArgumentException(e);
    }

    EthernetPacket.Builder etherBuilder = new EthernetPacket.Builder();
    etherBuilder.dstAddr(MacAddress.ETHER_BROADCAST_ADDRESS)
            .srcAddr(srcMac)
            .type(EtherType.ARP)
            .payloadBuilder(arpBuilder)
            .paddingAtBuild(true);

    return etherBuilder.build();
}
 
开发者ID:cisco-system-traffic-generator,项目名称:trex-java-sdk,代码行数:30,代码来源:TRexClientTest.java


示例6: reply

import org.pcap4j.packet.namednumber.ArpOperation; //导入依赖的package包/类
public static void reply(Packet packet, Node node, NetworkInterface nif) {
  ArpPacket arpPacket = packet.get(ArpPacket.class);
  if (arpPacket == null) {
    throw new IllegalArgumentException(packet.toString());
  }

  InetAddress srcIpAddr
    = arpPacket.getHeader().getSrcProtocolAddr();
  MacAddress srcMacAddr
    = arpPacket.getHeader().getSrcHardwareAddr();
  InetAddress dstIpAddr
    = arpPacket.getHeader().getDstProtocolAddr();

  ArpPacket.Builder arpBuilder = new ArpPacket.Builder();
  arpBuilder.hardwareType(ArpHardwareType.ETHERNET)
            .protocolType(EtherType.IPV4)
            .hardwareAddrLength((byte)MacAddress.SIZE_IN_BYTES)
            .protocolAddrLength((byte)ByteArrays.INET4_ADDRESS_SIZE_IN_BYTES)
            .operation(ArpOperation.REPLY)
            .srcHardwareAddr(nif.getMacAddress())
            .srcProtocolAddr(dstIpAddr)
            .dstHardwareAddr(srcMacAddr)
            .dstProtocolAddr(srcIpAddr);
  try {
    node.sendL3Packet(arpBuilder.build(), nif);
  } catch (SendPacketException e) {
    // TODO 自動生成された catch ブロック
    e.printStackTrace();
  }
}
 
开发者ID:kaitoy,项目名称:sneo,代码行数:31,代码来源:ArpHelper.java


示例7: sendRequest

import org.pcap4j.packet.namednumber.ArpOperation; //导入依赖的package包/类
public void sendRequest(
  InetAddress targetIpAddr,
  Node node,
  NetworkInterface nif
) {
  InetAddress srcIpAddr = null;
  for (NifIpAddress addr: nif.getIpAddresses()) {
    if (addr.getIpAddr() instanceof Inet4Address) {
      srcIpAddr = addr.getIpAddr();
    }
  }
  if (srcIpAddr == null) {
    throw new IllegalArgumentException("No IPv4 address is found in " + nif);
  }
  MacAddress srcMacAddr = nif.getMacAddress();

  ArpPacket.Builder arpBuilder = new ArpPacket.Builder();
  arpBuilder.hardwareType(ArpHardwareType.ETHERNET)
            .protocolType(EtherType.IPV4)
            .hardwareAddrLength((byte)MacAddress.SIZE_IN_BYTES)
            .protocolAddrLength((byte)ByteArrays.INET4_ADDRESS_SIZE_IN_BYTES)
            .operation(ArpOperation.REQUEST)
            .srcHardwareAddr(srcMacAddr)
            .srcProtocolAddr(srcIpAddr)
            .dstHardwareAddr(MacAddress.ETHER_BROADCAST_ADDRESS)
            .dstProtocolAddr(targetIpAddr);
  try {
    node.sendL3Packet(arpBuilder.build(), nif);
  } catch (SendPacketException e) {
    // TODO 自動生成された catch ブロック
    e.printStackTrace();
  }
}
 
开发者ID:kaitoy,项目名称:sneo,代码行数:34,代码来源:ArpHelper.java


示例8: handleArp

import org.pcap4j.packet.namednumber.ArpOperation; //导入依赖的package包/类
private void handleArp(Packet packet, NetworkInterface getter) {
  ArpHeader ah = packet.get(ArpPacket.class).getHeader();

  boolean toMe = false;
  for (NifIpAddress nifIpAddr: getter.getIpAddresses()) {
    if (nifIpAddr.getIpAddr().equals(ah.getDstProtocolAddr())) {
      toMe = true;
      break;
    }
  }
  if (!toMe) {
    if (LOGGER.isDebugEnabled()) {
      LOGGER.debug("Dropped an ARP packet not to me: " + packet);
    }
    return;
  }

  ArpOperation op = ah.getOperation();
  if (op.equals(ArpOperation.REQUEST)) {
    ArpHelper.cache(packet, arpCache);
    ArpHelper.reply(
      packet,
      Node.this,
      getter
    );
  }
  else if (op.equals(ArpOperation.REPLY)) {
    ArpHelper.cache(packet, arpCache);
  }
  else {
    LOGGER.warn(
      "Dropped a packet with unknown ARP operation: " + packet
    );
  }
}
 
开发者ID:kaitoy,项目名称:sneo,代码行数:36,代码来源:Node.java



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java Environment类代码示例发布时间:2022-05-22
下一篇:
Java RowCounterMapper类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap