我正在尝试使用以下命令将以太网数据包发送到选定的目标 MAC 地址jPcap
:
public void sendPacket(Packet packet, byte[] srcMac, byte[] dstMac, Interface i) throws IOException
{
JpcapSender sender = JpcapSender.openDevice(i.netInterface);
EthernetPacket ether = new EthernetPacket();
ether.frametype = EthernetPacket.ETHERTYPE_IP;
ether.src_mac = srcMac; // MAC address of selected interface
ether.dst_mac = dstMac; // MAC addr. choosed somwhere on form
packet.datalink = ether;
sender.sendPacket(packet);
sender.close();
}
它可以工作,但它总是发送到选定的接口而不是dst_mac
!
所以我不明白所选接口和之间的关系scr_mac
:
- 为什么我必须同时选择(
interface
和scr_mac
)? dst_mac
为什么即使不使用我也要添加?- 那么如何从我的计算机中发送数据包呢?