亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? myxray.c

?? 一個Linux下抓包軟件,可以實現抓包
?? C
?? 第 1 頁 / 共 2 頁
字號:
//myxray.c V0.2
#include <sys/socket.h>
#include <sys/types.h>
#include <stdio.h>
#include <errno.h>
#include <sys/ioctl.h>
#include <net/if.h>
#include <signal.h>
#include <netinet/ip.h>
#include <netinet/in.h>
#include <string.h>
#include <arpa/inet.h>
#include <netinet/if_ether.h>
#include <netinet/ip_icmp.h>
#include <time.h>
#include <netinet/igmp.h>
#define __FAVOR_BSD
#include <netinet/tcp.h>
#include <netdb.h>
#include <netinet/udp.h>
#define PACKET_SIZE 4096
#define ETH_HW_ADDR_LEN 6
#define IP_ADDR_LEN 4
#define LOWCOUNTER 10
#define MAX(a,b) ((a)>(b)?(a):(b))
struct arp_packet
    {
    u_char targ_hw_addr[ETH_HW_ADDR_LEN];
    u_char src_hw_addr[ETH_HW_ADDR_LEN];
    u_short frame_type;
    u_short hw_type;
    u_short prot_type;
    u_char hw_addr_size;
    u_char prot_addr_size;
    u_short op;
    u_char sndr_hw_addr[ETH_HW_ADDR_LEN];
    u_char sndr_ip_addr[IP_ADDR_LEN];
    u_char rcpt_hw_addr[ETH_HW_ADDR_LEN];
    u_char rcpt_ip_addr[IP_ADDR_LEN];
    u_char padding[18];
    } ;
void leave();
char * hwaddr (unsigned char *,char *);
void writearpbuf(FILE *,char *,int);//寫一個arpbuf到fd中
void writetcpbuf(FILE *,char *,int);
void writeudpbuf(FILE *,char *,int);
void writeigmpbuf(FILE *,char *,int);
void writeicmpbuf(FILE *,char *,int);

int fd_recv = -1 ;
time_t one,two,temptime;
char arpbufone[PACKET_SIZE];
char tcpbufone[PACKET_SIZE];
char udpbufone[PACKET_SIZE];
char igmpbufone[PACKET_SIZE];
char icmpbufone[PACKET_SIZE];
int arpcounter=0,tcpcounter=0,igmpcounter=0,icmpcounter=0,udpcounter=0;
char writebuf[PACKET_SIZE];
FILE * waringfd;
unsigned int total=0,totalarp=0,disarp=0,totaltcp=0,distcp=0,
totaludp=0,disudp=0,totalicmp=0,disicmp=0,totaligmp=0,disigmp=0;
struct ifreq ifr,ifr_old;

main(int argc, char *argv[])
{
char device[] = "eth0"; // ethernet device name
char protocol[16];
u_char buf_recv[PACKET_SIZE]; // buffer for receive
int ihl;
int ethprotol;
int ipfragoff,df,mf;
int protol;	
char buf1[20],buf2[20],buf3[20],buf4[20];
char strptr[255];
char *srcaddr,*dstaddr;
struct ethhdr *eth ;
struct arp_packet *arphead;
struct udphdr *udp;
struct icmp *icmphdr;
struct iphdr * ip;
struct tcphdr * tcp1;
char *flagsmes;
int flags;
struct igmp * igmp1;
struct in_addr in1;
struct in_addr in2;
int from_len, datalen;
struct sockaddr from;
int arpenable=0;
int tcpenable=0;
int icmpenable=0;
int igmpenable=0;
int loenable=0;
int udpenable=0;
char *tcpflag=NULL;
int c;
char *dstip=NULL;
char *srcip=NULL;
extern char *optarg;
extern int optind;
const char
message[]=
"-a
display arp packet
-t 
display tcp packet
-f   one of RST FIN SYN PUSH ACK URG 
display only tcpflag tcp packet
-u 
display udp packet
-i 
display icmp packet
-g 
display igmp packet
-A 
display all packet
-l 
also display lo layer packet
-s srcip 
display srcip packet
-d dstip 
display dstip packet
Welcome to use myxray which writed by sztcww Good Luck";

if (argc==1) {
printf("%s\n",message);
exit(-1);
}

while ((c = getopt(argc, argv, "Aatugil?s:d:f:")) != EOF)
        switch (c) {
    case 'A':
  tcpenable=1;
  udpenable=1;
  icmpenable=1;
  igmpenable=1;
  arpenable=1;
  break;
case 'd':
  dstip=optarg;
break;
    case 's':
srcip=optarg;
break;
    case 'f':
tcpflag=optarg;
break;
case 'a':
         arpenable=1;
         break;
    case 't':
         tcpenable=1;
         break;
    case 'i':
         icmpenable=1;
         break;
    case 'g':
igmpenable=1;
        break;
    case 'u':
         udpenable=1;
         break;
    case 'l':
loenable=1;
break;
    case '?':
         printf("%s\n",message);
         exit(-1);
        }

if ( (waringfd=fopen("myxray.waring","a+"))==NULL) 
{
perror("fopen");
exit(-1);
} 
fd_recv = socket(AF_INET, SOCK_PACKET, htons(0x0003));
if (fd_recv < 0) { perror( "packet socket error"); exit(-1); }
strcpy(ifr.ifr_name, device);
if (ioctl(fd_recv, SIOCGIFFLAGS, &ifr) < 0 ) 
{
  perror("ioctl SIOCGIFFLAGS error");
  if (fd_recv >= 0) close(fd_recv);
  exit(-1);
}
ifr_old = ifr;
ifr.ifr_flags |= IFF_PROMISC;
if (ioctl(fd_recv, SIOCSIFFLAGS, &ifr) < 0 ) 
{
  perror("ioctl SIOCSIFFLAGS error");
  if (fd_recv >= 0) close(fd_recv);
  exit(-1);
}

signal(SIGINT, leave);
signal(SIGTERM, leave);

one=time(NULL);
AGAIN:
bzero(&from, sizeof(from));
from_len = sizeof(from);
bzero(buf_recv, PACKET_SIZE);
datalen = recvfrom(fd_recv, (char *)buf_recv, 4096, 0,&from, &from_len);
if (datalen < 0)
{
perror("recvfrom error");
  exit(-1);
}
total++;
buf_recv[datalen] = '\0';
if (loenable==0)
if (strcmp(device, from.sa_data) != 0) goto AGAIN;
eth=(struct ethhdr *)buf_recv;
ethprotol=ntohs(eth->h_proto);
if (ethprotol==0x0806) 
{
arphead=(struct arp_packet *)buf_recv;
    memcpy(&in1,arphead->sndr_ip_addr, IP_ADDR_LEN);
    memcpy(&in2,arphead->rcpt_ip_addr, IP_ADDR_LEN);
    srcaddr=inet_ntoa(in1);
    dstaddr=(char*)inet_ntop(AF_INET,&in2,strptr,sizeof(strptr));

totalarp++;

    if ( (!memcmp(srcaddr,dstaddr,MAX(strlen(srcaddr),strlen(dstaddr))))&&
(memcmp(hwaddr(arphead->rcpt_hw_addr,buf1),"00:00:00:00:00:00",17)) ) 
 writearpbuf(waringfd,buf_recv,1);
/*紀錄arp包中srcaddr,dstaddr相同的數據包*/
else
{
if ( memcmp(buf_recv,arpbufone,datalen)==0 ) arpcounter++;
else 
{
if (arpcounter>LOWCOUNTER)
/*紀錄連續抓到的,arpcounter>LOWCOUNTER的arp包 */
  {
writearpbuf(waringfd,arpbufone,arpcounter+1);
}
memcpy(arpbufone,buf_recv,datalen);
arpcounter=0;
}//end else
}//end else
}
if ((ethprotol==0x0806)&&(arpenable))
{//arp
if ( ( (dstip==NULL)||(strcmp(dstaddr,dstip)==0) )&&
((srcip==NULL)||(strcmp(srcaddr,srcip)==0) ) )
    { 
temptime=time(NULL);
  printf("Recorded %sethhdr\nsrchw:%s--->dsthw:%s proto:%xH\n",
  ctime(&temptime),hwaddr(eth->h_source,buf1),hwaddr(eth->h_dest,buf2),ethprotol);
  printf("arphdr\nhwtype:%d protol:%xH hw_size:%d pro_size:%d op:%d\ns_ha:% s s_ip:%s\nd_ha:%s d_ip:%s\n",
ntohs(arphead->hw_type),ntohs(arphead->prot_type),
arphead->hw_addr_size, arphead->prot_addr_size,
ntohs(arphead->op), hwaddr(arphead->sndr_hw_addr,buf1),
srcaddr, hwaddr(arphead->rcpt_hw_addr,buf2),dstaddr);
  printf("-----------------------------------------------------------\n");
disarp++;
  }
  goto AGAIN;
}//end arp

if (ethprotol==0x0800)
{//ip
ip = (struct iphdr *)&buf_recv[14];
  ihl = (int)ip->ihl << 2;
in1.s_addr = ip->saddr;
  in2.s_addr = ip->daddr;
  srcaddr=inet_ntoa(in1);
dstaddr=(char *)inet_ntop(AF_INET,&in2,strptr,sizeof(strptr));
  //iphdr
  protol=ip->protocol;
  ipfragoff=ntohs(ip->frag_off);
  df=ipfragoff&IP_DF;
  mf=ipfragoff&IP_MF;
   if (df!=0) df=1;
  if (mf!=0) mf=1;

  protol=ip->protocol;

switch (protol) 
{
case 6 :totaltcp++;
  tcp1 = (struct tcphdr *)&buf_recv[14 + ihl];
  flags= tcp1->th_flags;
  if (flags&TH_PUSH) flagsmes="PUSH";
  if (flags&TH_ACK) flagsmes="ACK";
  if (flags&TH_URG) flagsmes="URG";
  if (flags&TH_FIN) flagsmes="FIN";
  if (flags&TH_SYN) flagsmes="SYN";
  if (flags&TH_RST) flagsmes="RST";

if ( !memcmp(buf_recv,tcpbufone,datalen))
tcpcounter++;
else 
{
if (tcpcounter>LOWCOUNTER)
{
         writetcpbuf(waringfd,tcpbufone,tcpcounter);
}
tcpcounter=0;
memcpy(tcpbufone,buf_recv,datalen);
     } 
break;
case 1 : totalicmp++;
   icmphdr=(struct icmp *)&buf_recv[14 + ihl];
            if (!memcmp(buf_recv,icmpbufone,datalen))
icmpcounter++; 
else 
{ 
if (icmpcounter>LOWCOUNTER)
             {
writeicmpbuf(waringfd,icmpbufone,icmpcounter); 
             }
icmpcounter=0;
             memcpy(icmpbufone,buf_recv,datalen);
}
break;
case 17:totaludp++;
  udp= (struct udphdr *)&buf_recv[14 + ihl];
            if ( !memcmp(buf_recv,udpbufone,datalen)) 
udpcounter++;
else 
{
   if (udpcounter>LOWCOUNTER)
               {
     writeudpbuf(waringfd,udpbufone,udpcounter);
               }
   udpcounter=0;stdout
               memcpy(udpbufone,buf_recv,datalen);
}
break;
case 2 :totaligmp++;
      igmp1=(struct igmp *)&buf_recv[14+ihl];
            if (!memcmp(inet_ntoa(igmp1->igmp_group),"0.0.0.0",7))
writeigmpbuf(waringfd,buf_recv,1);
else 
{
  if (!memcmp(buf_recv,igmpbufone,datalen)) 
igmpcounter++; 
  else 
  { 
   if (igmpcounter>LOWCOUNTER)
             {
writeigmpbuf(waringfd,igmpbufone,igmpcounter); }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜精品影院在线观看| 成人av高清在线| 色综合网站在线| 久久婷婷综合激情| 亚洲成人在线网站| 99久久精品国产导航| 久久综合久久综合亚洲| 婷婷成人综合网| 91国模大尺度私拍在线视频| 国产欧美日产一区| 久久国产成人午夜av影院| 色欧美日韩亚洲| 亚洲精品视频一区| 99国产精品国产精品毛片| 久久久综合网站| 激情欧美日韩一区二区| 欧美精品777| 亚洲成人av资源| 在线观看欧美黄色| 亚洲色图第一区| 91啪亚洲精品| 国产精品成人午夜| 成人黄色小视频| 亚洲国产精品成人综合| 高清在线不卡av| 欧美国产日韩精品免费观看| 国产精品资源网站| 国产亚洲精品免费| 国产伦精一区二区三区| 久久综合狠狠综合| 国内精品免费**视频| 久久久久久99精品| 国产精品99久久久| 国产精品国产三级国产普通话蜜臀| 国产一区二区美女| 国产午夜精品在线观看| 国产91精品入口| 综合精品久久久| 色综合久久久久久久久久久| 亚洲激情图片一区| 欧美日免费三级在线| 亚洲伊人色欲综合网| 欧美日韩国产精选| 免费观看91视频大全| 精品久久久久99| 国产精品一区不卡| 亚洲欧美视频在线观看视频| 在线亚洲人成电影网站色www| 亚洲一区二区在线播放相泽 | 成人爽a毛片一区二区免费| 久久蜜桃av一区二区天堂| 成人av高清在线| 亚洲成人自拍网| 精品少妇一区二区三区在线播放| 国内久久精品视频| 亚洲日本韩国一区| 91精品中文字幕一区二区三区| 美女一区二区在线观看| 国产精品免费免费| 欧美伊人久久久久久久久影院| 日本aⅴ亚洲精品中文乱码| 久久久久成人黄色影片| 日本精品免费观看高清观看| 日韩av在线发布| 中文字幕在线不卡视频| 欧美猛男男办公室激情| 福利电影一区二区| 日韩国产一二三区| 国产精品三级电影| 日韩一区二区三区免费观看| 成a人片亚洲日本久久| 日韩精品亚洲一区| 中文字幕亚洲一区二区va在线| 欧美日本韩国一区二区三区视频| 粉嫩一区二区三区性色av| 亚洲成人黄色影院| 国产精品少妇自拍| 精品免费国产二区三区| 在线观看免费视频综合| 成人午夜大片免费观看| 免费亚洲电影在线| 亚洲在线成人精品| 最近中文字幕一区二区三区| 精品日韩在线一区| 91麻豆精品国产| 一本一道久久a久久精品综合蜜臀| 久草这里只有精品视频| 一区二区三区久久| 国产精品久久久一本精品 | 一本色道久久综合精品竹菊| 美国毛片一区二区| 亚洲午夜在线观看视频在线| 欧美国产日韩亚洲一区| 欧美xxx久久| 欧美卡1卡2卡| 色综合天天综合狠狠| 国产成人在线视频网址| 另类综合日韩欧美亚洲| 午夜精品视频在线观看| 亚洲美女淫视频| 中文字幕一区二区三区乱码在线| 精品国产乱码久久久久久免费| 欧美日韩一区二区三区四区五区| 成人av小说网| 国产v日产∨综合v精品视频| 美国av一区二区| 久久精品国产99| 久久国产尿小便嘘嘘| 久久不见久久见免费视频7 | 国产成人综合亚洲91猫咪| 精品午夜久久福利影院| 日韩成人一区二区| 日韩av网站免费在线| 日韩国产在线观看一区| 午夜av一区二区| 日本免费新一区视频| 美女任你摸久久| 麻豆91在线播放免费| 极品少妇一区二区三区精品视频 | 日韩vs国产vs欧美| 免费人成黄页网站在线一区二区| 亚洲电影在线播放| 亚洲自拍偷拍麻豆| 日韩制服丝袜av| 国产很黄免费观看久久| 成人午夜激情片| 91美女在线观看| 欧美午夜一区二区三区| 欧美精品九九99久久| 欧美一区二区三区视频在线| 日韩午夜在线观看视频| 久久久久九九视频| 国产精品福利影院| 亚洲综合色网站| 久久99精品久久久久久动态图| 精品亚洲国产成人av制服丝袜| 国产一区二区在线观看免费| 国产v日产∨综合v精品视频| 色伊人久久综合中文字幕| 欧美一卡2卡3卡4卡| 久久久久久日产精品| 国产精品久久久久天堂| 亚洲一区二区影院| 国模无码大尺度一区二区三区| 高清国产一区二区三区| 欧洲亚洲精品在线| 欧美精品一区二区三区蜜臀| 中文字幕一区二区在线播放| 亚洲成人高清在线| 国产激情视频一区二区三区欧美 | 欧美不卡123| 国产精品卡一卡二| 亚洲一区二区av在线| 激情图片小说一区| 91美女视频网站| 日韩欧美一级精品久久| 亚洲色大成网站www久久九九| 日韩和欧美一区二区| av一区二区三区| 欧美α欧美αv大片| 一区二区三区毛片| 国产成人8x视频一区二区| 欧美高清性hdvideosex| 国产精品婷婷午夜在线观看| 天堂蜜桃91精品| 不卡在线视频中文字幕| 欧美xxxx老人做受| 亚洲国产成人高清精品| 国产91露脸合集magnet| 欧美电视剧在线观看完整版| 亚洲人成电影网站色mp4| 国产一区二区三区四区五区美女 | 欧美男男青年gay1069videost| 欧美激情一区在线| 日本欧洲一区二区| 在线一区二区视频| 国产精品国产精品国产专区不蜜 | 欧美网站大全在线观看| 欧美激情一区不卡| 国产麻豆视频精品| 欧美成人一区二区三区在线观看| 一区二区三国产精华液| www.视频一区| 亚洲国产高清在线观看视频| 精品影视av免费| 欧美一区二区视频在线观看2020| 亚洲一区在线视频观看| 色婷婷国产精品综合在线观看| 国产欧美精品一区二区三区四区| 精品中文字幕一区二区小辣椒| 欧美日韩成人激情| 亚洲成人在线免费| 精品视频色一区| 亚洲成人免费看| 在线成人免费视频| 午夜精品123| 欧美一区二区三区在线电影 | 粉嫩久久99精品久久久久久夜| 久久日一线二线三线suv| 精品在线视频一区|