Java mac地址问题
我想在局域网中获取另一台计算机的mac地址,我该怎么做?我正在使用JPCAPJava mac地址问题,java,networking,Java,Networking,我想在局域网中获取另一台计算机的mac地址,我该怎么做?我正在使用JPCAP private void getPackage(JpcapCaptor captor) { try{ IPPacket ip = (IPPacket)captor.getPacket(); for(int a =0 ; a <found.size(); a++ ) { if(ip.dst
private void getPackage(JpcapCaptor captor)
{
try{
IPPacket ip = (IPPacket)captor.getPacket();
for(int a =0 ; a <found.size(); a++ )
{
if(ip.dst_ip.equals(found.get(a)))
check = true;
}
if(!check)
{
if(ip.dst_ip.isSiteLocalAddress())
{
host = ip.dst_ip.getHostName();
System.out.println("destination ip : " + ip.dst_ip + " " + ip.dst_ip.getHostName());
System.out.println("Source ip : " + ip.src_ip + " " + ip.src_ip.getHostName());
found.addElement(ip.dst_ip);
}
}
check = false;
}catch(Exception ex)
{
//Sys.alert("Error" ,"lobby exeption :" + ex);
//wegens null reverence exeption
}
}
private void getPackage(jpcaptor captor)
{
试一试{
IPPacket ip=(IPPacket)captor.getPacket();
对于(inta=0;a
您需要以下方法:
public java.lang.Object getSenderHardwareAddress()
我希望它能起作用。我看不出能让该死的库列出我的接口。
package jpcapExample;
import jpcap.*;
import jpcap.packet.*;
class PacketPrinter implements PacketReceiver {
public void receivePacket(Packet packet) {
if (packet instanceof ARPPacket){
ARPPacket arpp = (ARPPacket) packet;
Object str = arpp.getSenderHardwareAddress();
System.out.println("got arp from: " + str.toString());
}
System.out.println(packet);
}
}
---------------------[ different file ]-------------
try {
JpcapCaptor eth0=
JpcapCaptor.
openDevice(devices[eth0idx], 65535, false, 20000);
while (true){
eth0.processPacket(1233,new PacketPrinter());
}
} catch (IOException io){
io.printStackTrace();
}