Domanda

Sto cercando una libreria Java che mi darà l'accesso ai frame Ethernet prime, sia per la lettura e l'invio di loro. Il mio obiettivo finale è quello di creare uno scanner di rete BACnet Ethernet.

Si prega di notare, non sto cercando per il protocollo TCP \ IP.

Qualcuno sa di una buona biblioteca per fare questo?

È stato utile?

Soluzione

Jpcap aiuto può. Si noti che c'è un progetto di Sourceforge con lo stesso nome, ma non sembra essere lo stesso progetto.

Ecco alcuni esempi di codice (da esercitazione della biblioteca), che usi Jpcap per inviare un pacchetto TCP e un frame Ethernet:

Modifica:. Il codice di esempio non creare un TCPPacket, ma si può creare una Packet regolare invece

//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();
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top