Java Library for Raw Ethernet

I am looking for a Java library that will give me access to raw Ethernet frames, both for reading and for sending them. My ultimate goal is to create a BACnet Ethernet network scanner.

Please note, I am not looking for TCP \ IP.

Does anyone know a good library for this?

+4
source share
1 answer

Maybe Jpcap might help. Note that the Sourceforge project has the same name, but it does not seem to be the same project.

Here is a sample code (from a library tutorial) that Jpcap uses to send a TCP packet and an Ethernet frame:

Edit: The sample code creates a TCPPacket , but instead you can create a regular Packet .

 //open a network interface to send a packet to JpcapSender sender=JpcapSender.openDevice(devices[index]); //create a TCP packet with specified port numbers, flags, and other parameters TCPPacket p=new TCPPacket(12,34,56,78,false,false,false,false,true,true,true,true,10,10); //specify IPv4 header parameters p.setIPv4Parameter(0,false,false,false,0,false,false,false,0,1010101,100,IPPacket.IPPROTO_TCP, InetAddress.getByName("www.microsoft.com"),InetAddress.getByName("www.google.com")); //set the data field of the packet p.data=("data").getBytes(); //create an Ethernet packet (frame) EthernetPacket ether=new EthernetPacket(); //set frame type as IP ether.frametype=EthernetPacket.ETHERTYPE_IP; //set source and destination MAC addresses ether.src_mac=new byte[]{(byte)0,(byte)1,(byte)2,(byte)3,(byte)4,(byte)5}; ether.dst_mac=new byte[]{(byte)0,(byte)6,(byte)7,(byte)8,(byte)9,(byte)10}; //set the datalink frame of the packet p as ether p.datalink=ether; //send the packet p sender.sendPacket(p); sender.close(); 
+6
source

All Articles