Frage

Ich bin für eine Java-Bibliothek, die mir Zugang zu rohen Ethernet-Frames geben, sowohl für das Lesen und sie senden. Mein Endziel ist es, einen BACnet-Ethernet-Netzwerk-Scanner zu erstellen.

Bitte beachten Sie, ich bin nicht auf der Suche für TCP \ IP.

Wer weiß, eine gute Bibliothek, dies zu tun?

War es hilfreich?

Lösung

Vielleicht Jpcap helfen können. Beachten Sie, dass es ein Projekt Source mit dem gleichen Namen, aber es scheint nicht das gleiche Projekt.

Hier ist ein Beispielcode (aus der Bibliothek des Tutorial), dass Anwendungen Jpcap ein TCP-Paket und einen Ethernet-Frame zu senden:

Edit:. Der Beispielcode funktioniert ein TCPPacket erstellen, aber Sie können eine regelmäßige Packet stattdessen erstellen

//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();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top