Jpcap相关的 不知道为什么没有抓取到其他人的数据报

Mkyc 2013-11-14 11:33:32
import jpcap.JpcapCaptor;
import jpcap.NetworkInterface;
import jpcap.packet.DatalinkPacket;
import jpcap.packet.Packet;
import jpcap.packet.TCPPacket;
public class net {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

final NetworkInterface[] devices = JpcapCaptor.getDeviceList();// 获取本机上的网络接口对象数组
for (int i = 0; i < devices.length; i++) {
System.out.println("第" + i + "个网卡:" );
System.out.print(" ");
System.out.println("网卡名称:"+devices[i].name);
System.out.print(" ");
System.out.print("网卡MAC地址:");
for (byte b : devices[i].mac_address)
System.out.print(Integer.toHexString(b&0xff) + ":"); //java是高字节开头 就是高字节存放在低地址 所以一开始拿的字节就是mac地址的高位
//与0xff&是将高24位清0
System.out.println();

}
int index=3; //手动设置
Packet pt=null;
try{
JpcapCaptor captor=JpcapCaptor.openDevice (devices[index], 65535, false, 20); //通过网卡,打开一个捕捉器
while(true)
{
pt=captor.getPacket();
if(pt!=null)
{
DatalinkPacket po=pt.datalink;
System.out.println(po);

}

}
}
catch(Exception e)
{
e.printStackTrace();
}

}
}
这是我的代码 我想问下为什么我已经设置成false了 也就是混杂模式 但是为什么提取到的mac地址只有在我和我家无线路由器的值 我家其他的mac为什么没有提取到 换个说法就是为什么没有监听到其他数据报
...全文
118 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mkyc 2013-11-14
  • 打赏
  • 举报
回复
自己顶下 哈
Mkyc 2013-11-14
  • 打赏
  • 举报
回复
引用 楼主 cys1991 的回复:
import jpcap.JpcapCaptor; import jpcap.NetworkInterface; import jpcap.packet.DatalinkPacket; import jpcap.packet.Packet; import jpcap.packet.TCPPacket; public class net { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub final NetworkInterface[] devices = JpcapCaptor.getDeviceList();// 获取本机上的网络接口对象数组 for (int i = 0; i < devices.length; i++) { System.out.println("第" + i + "个网卡:" ); System.out.print(" "); System.out.println("网卡名称:"+devices[i].name); System.out.print(" "); System.out.print("网卡MAC地址:"); for (byte b : devices[i].mac_address) System.out.print(Integer.toHexString(b&0xff) + ":"); //java是高字节开头 就是高字节存放在低地址 所以一开始拿的字节就是mac地址的高位 //与0xff&是将高24位清0 System.out.println(); } int index=3; //手动设置 Packet pt=null; try{ JpcapCaptor captor=JpcapCaptor.openDevice (devices[index], 65535, false, 20); //通过网卡,打开一个捕捉器 while(true) { pt=captor.getPacket(); if(pt!=null) { DatalinkPacket po=pt.datalink; System.out.println(po); } } } catch(Exception e) { e.printStackTrace(); } } } 这是我的代码 我想问下为什么我已经设置成false了 也就是混杂模式 但是为什么提取到的mac地址只有在我和我家无线路由器的值 我家其他的mac为什么没有提取到 换个说法就是为什么没有监听到其他数据报
没有人吗

51,410

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧