jpcap抓取包的数据乱码
我用jpcap抓取包的数据代码片段publicvoidreceivePacket(Packetpacket){//Tcp包,在javaSocket中只能得到负载数据if(...
我用jpcap抓取包的数据
代码片段
public void receivePacket(Packet packet) {
// Tcp包,在java Socket中只能得到负载数据
if (packet instanceof jpcap.packet.TCPPacket) {
TCPPacket p = (TCPPacket) packet;
String s = "TCPPacket:| dst_ip " + p.dst_ip + ":" + p.dst_port
+ "|src_ip " + p.src_ip + ":" + p.src_port + " |len: "
+ p.len;
System.out.println(s);
String mys = "";
StringBuilder sb = new StringBuilder(mys);
for (byte element : p.data) {
sb.append(String.valueOf(element));
}
mys = sb.toString();
System.out.println("字节信息" + mys);
//String tempss = Arrays.toString(p.data);
//System.out.println("Arrays:" + tempss);
System.out.println("_______________Data数据信息开始_____________________");
for (int index = 0; index < p.data.length; index++) {
char cc=(char)p.data[index];
System.out.print(cc);
}
System.out.println();
System.out.println("_______________Data结束_____________________");
}
现在是打印数据包中的数据乱码,中文乱码也就忍了,英文也乱码
大家帮帮吧 展开
代码片段
public void receivePacket(Packet packet) {
// Tcp包,在java Socket中只能得到负载数据
if (packet instanceof jpcap.packet.TCPPacket) {
TCPPacket p = (TCPPacket) packet;
String s = "TCPPacket:| dst_ip " + p.dst_ip + ":" + p.dst_port
+ "|src_ip " + p.src_ip + ":" + p.src_port + " |len: "
+ p.len;
System.out.println(s);
String mys = "";
StringBuilder sb = new StringBuilder(mys);
for (byte element : p.data) {
sb.append(String.valueOf(element));
}
mys = sb.toString();
System.out.println("字节信息" + mys);
//String tempss = Arrays.toString(p.data);
//System.out.println("Arrays:" + tempss);
System.out.println("_______________Data数据信息开始_____________________");
for (int index = 0; index < p.data.length; index++) {
char cc=(char)p.data[index];
System.out.print(cc);
}
System.out.println();
System.out.println("_______________Data结束_____________________");
}
现在是打印数据包中的数据乱码,中文乱码也就忍了,英文也乱码
大家帮帮吧 展开
若以下回答无法解决问题,邀请你更新回答
展开全部
//import jpcap.*;
//import jpcap.packet.*;
//public class Jpcap {
// private NetworkInterface [] devices;
// private NetworkInterface device;
// private JpcapCaptor jpcap;
// private JpcapSender sender;
// private NetworkInterface getDevice() throws Exception{
// devices = JpcapCaptor.getDeviceList();
// device = devices[0];
// jpcap = JpcapCaptor.openDevice(device, 2000, false, 10000);
// jpcap.setFilter("ip", true);
// //sender = jpcap.getJpcapSenderInstance();
// jpcap.loopPacket(-1, new PacketReceiverImpl());
// return device;
// }
// public Jpcap(){
// try{
// this.getDevice();
// }catch(Exception e){
// e.printStackTrace();
// }
// //getDevice();
// }
// public static void main(String []args){
// Jpcap j = new Jpcap();
// }
//
//}
//class PacketReceiverImpl implements PacketReceiver{
// public void receivePacket(Packet packet) {
// try{
// System.out.println(new String(packet.data,"gb2312"));
// }catch(Exception e){
// e.printStackTrace();
// }
// }
//}
某个版本我用过的
不过都注释掉了
你可以试试
起码中文不乱码
不过jpcap很怪
不同的版本一般不兼容
类似于lucene...
//import jpcap.packet.*;
//public class Jpcap {
// private NetworkInterface [] devices;
// private NetworkInterface device;
// private JpcapCaptor jpcap;
// private JpcapSender sender;
// private NetworkInterface getDevice() throws Exception{
// devices = JpcapCaptor.getDeviceList();
// device = devices[0];
// jpcap = JpcapCaptor.openDevice(device, 2000, false, 10000);
// jpcap.setFilter("ip", true);
// //sender = jpcap.getJpcapSenderInstance();
// jpcap.loopPacket(-1, new PacketReceiverImpl());
// return device;
// }
// public Jpcap(){
// try{
// this.getDevice();
// }catch(Exception e){
// e.printStackTrace();
// }
// //getDevice();
// }
// public static void main(String []args){
// Jpcap j = new Jpcap();
// }
//
//}
//class PacketReceiverImpl implements PacketReceiver{
// public void receivePacket(Packet packet) {
// try{
// System.out.println(new String(packet.data,"gb2312"));
// }catch(Exception e){
// e.printStackTrace();
// }
// }
//}
某个版本我用过的
不过都注释掉了
你可以试试
起码中文不乱码
不过jpcap很怪
不同的版本一般不兼容
类似于lucene...
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询