⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jpcap_sub.h

📁 JAVA 抓包系统~~~提取数据包分析。分离出TCP UDP ARP 等包
💻 H
字号:
/* Comment out next line to enable IPv6 capture*/
//#define INET6 1

/* Comment out next line if you get an error 
   "structure has no member name 'sa_lan" */
#define HAVE_SA_LEN

/* for debugging */
//#define DEBUG

#define MAX_NUMBER_OF_INSTANCE 255

#define IPv4HDRLEN 20
#define TCPHDRLEN 20
#define UDPHDRLEN 8
#define ICMPHDRLEN 8
#define MAX_PACKET_SIZE 1600

#ifndef IP_OFFMASK
#define IP_OFFMASK 0x1fff
#endif

#define AllocObject(cls)    (*env)->AllocObject(env,cls)
#define FindClass(cls)		(*env)->FindClass(env,cls)
#define DeleteLocalRef(ref) (*env)->DeleteLocalRef(env,ref)
#define GlobalClassRef(cls,str)\
     cls=FindClass(str);\
     cls=(*env)->NewGlobalRef(env,cls)
#define NewString(str)      (*env)->NewStringUTF(env,str)
#define GetStringChars(str) (*env)->GetStringUTFChars(env,str,0)
#define ReleaseStringChars(str,ary) (*env)->ReleaseStringUTFChars(env,str,ary)
#define IsInstanceOf(obj,cls) (*env)->IsInstanceOf(env,obj,cls)
#define Throw(cls,msg) (*env)->ThrowNew(env,cls,msg)
#define GetIntField(cls,obj,name)\
     (*env)->GetIntField(env,obj,(*env)->GetFieldID(env,cls,name,"I"))
#define GetByteField(cls,obj,name)\
     (*env)->GetByteField(env,obj,(*env)->GetFieldID(env,cls,name,"B"))
#define GetShortField(cls,obj,name)\
     (*env)->GetShortField(env,obj,(*env)->GetFieldID(env,cls,name,"S"))
#define GetLongField(cls,obj,name)\
     (*env)->GetLongField(env,obj,(*env)->GetFieldID(env,cls,name,"J"))
#define GetBooleanField(cls,obj,name)\
     ((*env)->GetBooleanField(env,obj,\
			      (*env)->GetFieldID(env,cls,name,"Z"))?1:0)
#define GetObjectField(cls,obj,type,name)\
     (*env)->GetObjectField(env,obj,(*env)->GetFieldID(env,cls,name,type))
#define GetStaticObjectField(cls,type,name)\
	 (*env)->GetStaticObjectField(env,cls,(*env)->GetStaticFieldID(env,cls,name,type))
#define YIELD()\
     (*env)->CallStaticVoidMethod(env,Thread,\
		(*env)->GetStaticMethodID(env,Thread,"yield","()V"));

extern pcap_t *pcds[MAX_NUMBER_OF_INSTANCE];
extern JNIEnv *jni_envs[MAX_NUMBER_OF_INSTANCE];
extern char pcap_errbuf[PCAP_ERRBUF_SIZE][MAX_NUMBER_OF_INSTANCE];

extern jclass JpcapHandler,Packet,DatalinkPacket,EthernetPacket,IPPacket,
       TCPPacket,UDPPacket,ICMPPacket,IPv6Option,ARPPacket,String,Thread;
extern jclass UnknownHostException,IOException;
extern jmethodID printlnMID,handleMID,setPacketValueMID,setDatalinkPacketMID,setPacketDataMID,
  setEthernetValueMID,setIPValueMID,setIPv4OptionMID,setIPv6ValueMID,addIPv6OptHdrMID,
  setTCPValueMID,setTCPOptionMID,setUDPValueMID,
  setICMPValueMID,setICMPIDMID,setICMPTimestampMID,setICMPRedirectIPMID,getICMPRedirectIPMID,
  setICMPRouterAdMID,setV6OptValueMID,setV6OptOptionMID,setV6OptFragmentMID,
  setV6OptRoutingMID,setV6OptAHMID,
  setARPValueMID,
  getSourceAddressMID,getDestinationAddressMID;

extern unsigned short in_cksum(unsigned short *addr,int len);
extern unsigned short in_cksum2(struct ip *ip,u_short len,unsigned short *data,int size);
extern void set_Java_env(JNIEnv *env);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -