我想要一个jpcap写的抓包的小程序和一个发送IP数据包的小程序 不胜感激
2个回答
展开全部
摘抄他人的,在此共享了
开发工具:MyEclipse 6.5
JDK1.6
jpcap版本 : jpcap0.7
动态库:jpcap.dll 、 wpcap.dll 、packet.dll 动态库放到System32下
jar包: jpcap.jar 加入到类路径下
本人机器接在一台交换机上,其他机器也接在这台交换机上
以下为开发代码:
try {
devices = JpcapCaptor.getDeviceList();//得到本机的网卡设备
// if true,the inferface becomes promiscuous mode(混杂模式)
captor = JpcapCaptor.openDevice(devices[0], 1024 * 10, true, 2000);//设为混合模式
captor.loopPacket(-1, handler );//循环获取包
} catch (Exception e) {
System.out.println(e.getMessage());
}
private static PacketReceiver handler = new PacketReceiver() {
public void receivePacket(Packet packet) {
if (packet instanceof TCPPacket) {
TCPPacket tcp = (TCPPacket) packet;
InetAddress srcip = tcp.src_ip;
InetAddress dstip = tcp.dst_ip;
System.out.println("===================================");
System.out.println("TCP");
EthernetPacket ether = (EthernetPacket) tcp.datalink;
System.out.println("源IP:" + tcp.src_ip + " 目的IP:"
+ tcp.dst_ip + " 源端口:" + tcp.src_port + " 目的端口:"
+ tcp.dst_port);
System.out.println("源MAC:" + ether.getSourceAddress()
+ " 目的MAC:" + ether.getDestinationAddress());
System.out.println("协议:" + tcp.protocol);
}
}
};
运行结果如下:
TCP
源IP:/198.20.19.70 目的IP:/198.20.17.6 源端口:56914 目的端口:15002
源MAC:00:1f:d0:1d:ce:93 目的MAC:00:00:5e:00:01:1b
TCP
源IP:/198.20.17.6 目的IP:/198.20.19.70 源端口:15002 目的端口:56914
源MAC:00:0f:e2:3f:14:e8 目的MAC:00:1f:d0:1d:ce:93
TCP
源IP:/198.20.19.70 目的IP:/198.20.17.6 源端口:56914 目的端口:15002
源MAC:00:1f:d0:1d:ce:93 目的MAC:00:00:5e:00:01:1b
TCP
源IP:/198.20.17.6 目的IP:/198.20.19.70 源端口:15002 目的端口:56914
源MAC:00:0f:e2:3f:14:e8 目的MAC:00:1f:d0:1d:ce:93
TCP
源IP:/198.20.19.70 目的IP:/198.20.17.6 源端口:56914 目的端口:15002
源MAC:00:1f:d0:1d:ce:93 目的MAC:00:00:5e:00:01:1b
…………
我机器的IP为:198.20.19.70
开发工具:MyEclipse 6.5
JDK1.6
jpcap版本 : jpcap0.7
动态库:jpcap.dll 、 wpcap.dll 、packet.dll 动态库放到System32下
jar包: jpcap.jar 加入到类路径下
本人机器接在一台交换机上,其他机器也接在这台交换机上
以下为开发代码:
try {
devices = JpcapCaptor.getDeviceList();//得到本机的网卡设备
// if true,the inferface becomes promiscuous mode(混杂模式)
captor = JpcapCaptor.openDevice(devices[0], 1024 * 10, true, 2000);//设为混合模式
captor.loopPacket(-1, handler );//循环获取包
} catch (Exception e) {
System.out.println(e.getMessage());
}
private static PacketReceiver handler = new PacketReceiver() {
public void receivePacket(Packet packet) {
if (packet instanceof TCPPacket) {
TCPPacket tcp = (TCPPacket) packet;
InetAddress srcip = tcp.src_ip;
InetAddress dstip = tcp.dst_ip;
System.out.println("===================================");
System.out.println("TCP");
EthernetPacket ether = (EthernetPacket) tcp.datalink;
System.out.println("源IP:" + tcp.src_ip + " 目的IP:"
+ tcp.dst_ip + " 源端口:" + tcp.src_port + " 目的端口:"
+ tcp.dst_port);
System.out.println("源MAC:" + ether.getSourceAddress()
+ " 目的MAC:" + ether.getDestinationAddress());
System.out.println("协议:" + tcp.protocol);
}
}
};
运行结果如下:
TCP
源IP:/198.20.19.70 目的IP:/198.20.17.6 源端口:56914 目的端口:15002
源MAC:00:1f:d0:1d:ce:93 目的MAC:00:00:5e:00:01:1b
TCP
源IP:/198.20.17.6 目的IP:/198.20.19.70 源端口:15002 目的端口:56914
源MAC:00:0f:e2:3f:14:e8 目的MAC:00:1f:d0:1d:ce:93
TCP
源IP:/198.20.19.70 目的IP:/198.20.17.6 源端口:56914 目的端口:15002
源MAC:00:1f:d0:1d:ce:93 目的MAC:00:00:5e:00:01:1b
TCP
源IP:/198.20.17.6 目的IP:/198.20.19.70 源端口:15002 目的端口:56914
源MAC:00:0f:e2:3f:14:e8 目的MAC:00:1f:d0:1d:ce:93
TCP
源IP:/198.20.19.70 目的IP:/198.20.17.6 源端口:56914 目的端口:15002
源MAC:00:1f:d0:1d:ce:93 目的MAC:00:00:5e:00:01:1b
…………
我机器的IP为:198.20.19.70
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
Storm代理
2023-08-29 广告
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询