مكتبة Java لـ Raw Ethernet [مغلق
-
01-10-2019 - |
سؤال
أبحث عن مكتبة Java التي ستتيح لي الوصول إلى إطارات Ethernet الخام ، سواء للقراءة أو إرسالها. هدفي النهائي هو إنشاء ماسح ضوئي لشبكة Bacnet Ethernet.
من فضلك ، ملاحظة ، أنا لا أبحث عن TCP IP.
أي شخص يعرف مكتبة جيدة للقيام بذلك؟
المحلول
يمكن JPCAP استطيع المساعدة. لاحظ أن هناك مشروع SourceForge بنفس الاسم ، لكن لا يبدو أنه نفس المشروع.
فيما يلي بعض رمز النماذج (من البرنامج التعليمي للمكتبة) الذي يستخدم JPCAP لإرسال حزمة TCP وإطار Ethernet:
تحرير: رمز العينة لا ينشئ أ TCPPacket
, ، ولكن يمكنك إنشاء منتظم 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();
لا تنتمي إلى StackOverflow