锘??xml version="1.0" encoding="utf-8" standalone="yes"?>精品久久久久久无码专区不卡 ,亚洲国产精品久久久天堂,久久久无码精品亚洲日韩软件http://www.shnenglu.com/bluemonster/archive/2010/10/21/130795.htmlbluemonsterbluemonsterThu, 21 Oct 2010 12:58:00 GMThttp://www.shnenglu.com/bluemonster/archive/2010/10/21/130795.htmlhttp://www.shnenglu.com/bluemonster/comments/130795.htmlhttp://www.shnenglu.com/bluemonster/archive/2010/10/21/130795.html#Feedback0http://www.shnenglu.com/bluemonster/comments/commentRss/130795.htmlhttp://www.shnenglu.com/bluemonster/services/trackbacks/130795.htmlhttp://blog.sina.com.cn/bluemonster0808

bluemonster 2010-10-21 20:58 鍙戣〃璇勮
]]>
winpcap鎶撳寘騫剁敤鍥炶皟鍑芥暟澶勭悊鍖?http://www.shnenglu.com/bluemonster/archive/2010/08/21/124201.htmlbluemonsterbluemonsterSat, 21 Aug 2010 10:18:00 GMThttp://www.shnenglu.com/bluemonster/archive/2010/08/21/124201.htmlhttp://www.shnenglu.com/bluemonster/comments/124201.htmlhttp://www.shnenglu.com/bluemonster/archive/2010/08/21/124201.html#Feedback0http://www.shnenglu.com/bluemonster/comments/commentRss/124201.htmlhttp://www.shnenglu.com/bluemonster/services/trackbacks/124201.html



 

#include "pcap.h"


void packet_handler(u_char *param, const struct pcap_pkthdr *header, const u_char *pkt_data);

int main()
{
pcap_if_t 
*alldevs;
pcap_if_t 
*d;
int inum;
int i=0;
pcap_t 
*adhandle;
char errbuf[PCAP_ERRBUF_SIZE];
   
   
    
if (pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL, &alldevs, errbuf) == -1)
    
{
        fprintf(stderr,
"Error in pcap_findalldevs: %s\n", errbuf);
        exit(
1);
    }

   
   
    
for(d=alldevs; d; d=d->next)
    
{
        printf(
"%d. %s"++i, d->name);
        
if (d->description)
            printf(
" (%s)\n", d->description);
        
else
            printf(
" (No description available)\n");
    }

   
    
if(i==0)
    
{
        printf(
"\nNo interfaces found! Make sure WinPcap is installed.\n");
        
return -1;
    }

   
    printf(
"Enter the interface number (1-%d):",i);
    scanf_s(
"%d"&inum);
   
    
if(inum < 1 || inum > i)
    
{
        printf(
"\nInterface number out of range.\n");
       
        pcap_freealldevs(alldevs);
        
return -1;
    }

   
   
    
for(d=alldevs, i=0; i< inum-1 ;d=d->next, i++);
   
   
    
if ( (adhandle= pcap_open(d->name,          // name of the device
                              65536,            // portion of the packet to capture
                                                
// 65536 guarantees that the whole packet will be captured on all the link layers
                              PCAP_OPENFLAG_PROMISCUOUS,    // promiscuous mode
                              1000,             // read timeout
                              NULL,             // authentication on the remote machine
                              errbuf            // error buffer
                              ) ) == NULL)
    
{
        fprintf(stderr,
"\nUnable to open the adapter. %s is not supported by WinPcap\n", d->name);
       
        pcap_freealldevs(alldevs);
        
return -1;
    }

   
    printf(
"\nlistening on %s\n", d->description);
   
   
    pcap_freealldevs(alldevs);
   
   
    pcap_loop(adhandle, 
0, packet_handler, NULL);
   
    
return 0;
}




void packet_handler(u_char *param, const struct pcap_pkthdr *header, const u_char *pkt_data)
{
    
struct tm ltime;
    
char timestr[16];
    time_t local_tv_sec;

   
    (VOID)(param);
    (VOID)(pkt_data);

   
    local_tv_sec 
= header->ts.tv_sec;
    localtime_s(
&ltime, &local_tv_sec);
    strftime( timestr, 
sizeof timestr, "%H:%M:%S"&ltime);
   
    printf(
"%s,%.6d len:%d\n", timestr, header->ts.tv_usec, header->len);
   
}


榪欓噷涓昏鏄兂璇存槑涓嬪洖璋冨嚱鏁扮殑鍚勪釜鍙傛暟錛岄『渚胯涓媝cap_loop

 

int pcap_loop (

pcap_t * p,

int cnt,

pcap_handler callback,

u_char * user  

)

 

pcap_t緇撴瀯瀵瑰紑鍙戣呮槸涓嶉忔槑鐨勶紝涓鑸槸鐢眕cap_open榪斿洖錛屽彲浠ヨ涓烘槸鎶撳寘鐨勫彞鏌勩俢nt琛ㄧず鎶撳埌cnt涓寘鍚巐oop緇撴潫錛宑allback灝辨槸澶勭悊鍖呯殑鍥炶皟鍑芥暟浜嗐倁ser鍙槸鐢ㄦ潵鎻忚堪榪欐鎶撳寘錛屽彲浠ョ疆涓篘ULL錛屽鏋滆寰楅渶瑕侊紝涔熷彲浠ユ妸鎶撳寘鐨勭洰鐨勫晩浠涔堢殑鍐欎笂鍘匯?/p>

-1 is returned on an error; 0 is returned if cnt is exhausted; -2 is returned if the loop terminated due to a call to pcap_breakloop() before any packets were processed. If your application uses pcap_breakloop(), make sure that you explicitly check for -1 and -2, rather than just checking for a return value < 0.

鍑洪敊榪斿洖-1錛屾姄瀹屼簡cnt涓寘榪斿洖0錛屽湪澶勭悊鍖呬箣鍓嶅氨璋冪敤pcap_breakloop()緇堢粨loop鍒欒繑鍥?2.鎵鏈夊鏋滆皟鐢ㄤ簡pcap_breakloop() 錛屽繀欏繪鏌ヨ繑鍥炲兼槸-1榪樻槸-2錛屼笉鑳芥潵絎肩粺媯鏌ユ槸鍚﹀皬浜?.

 

int pcap_dispatch (

pcap_t * p,

int cnt,

pcap_handler callback,

u_char * user  

)

 

pcap_dispatch鍜宲cap_loop鐨勫敮涓鍖哄埆鏄痯cap_dispatch浼氬洜涓鴻秴鏃惰岀粨鏉燂紙榪欎釜鏃墮棿鏄湪pcap_open閲岄潰璁劇疆鐨勶級錛宲cap_loop鍒欎笉綆★紝涓瀹氳鎶撶帺cnt涓寘

pcap_t* pcap_open  ( const char *  source, 
  int  snaplen, 
  int  flags, 
  int  read_timeout //灝辨槸榪欎釜璁劇疆瓚呮椂浜嗭紝鍗曚綅鏄縐?br />  struct pcap_rmtauth *  auth, 
  char *  errbuf  
 )

 

typedef void(* pcap_handler)(u_char *user, const struct pcap_pkthdr *pkt_header, const u_char *pkt_data)

 

user灝辨槸pcap_loop閲岀殑u_char*user

pkt_header鏄痺inpcap緇欐姄鍒扮殑鍖呴檮涓婄殑澶達紝涓嶆槸IP鎶ユ枃澶撮儴銆乁DP鎶ユ枃澶撮儴絳夌瓑鍗忚澶撮儴銆?/p>

struct pcap_pkthdr {
 struct timeval ts; 
 bpf_u_int32 caplen; 
 bpf_u_int32 len; 
};

pkt_data鏄姄鍒扮殑鍖呮暟鎹紝榪欓噷鍖呮嫭浜嗗崗璁殑澶撮儴銆?/p>

]]>
亚洲美日韩Av中文字幕无码久久久妻妇 | 人妻精品久久久久中文字幕一冢本| 亚洲精品国产第一综合99久久 | 国产毛片欧美毛片久久久| 精品久久久久久中文字幕大豆网 | 亚洲国产一成人久久精品| 国内精品久久久久久野外| 久久久WWW成人免费精品| 国内精品久久久久久久久电影网 | 伊人热热久久原色播放www| 波多野结衣中文字幕久久| 久久国产精品免费一区二区三区 | 久久国产香蕉视频| 久久99亚洲网美利坚合众国| 久久丝袜精品中文字幕| 91精品国产色综合久久| 日本精品久久久久影院日本| 久久综合九色综合久99| 久久久亚洲欧洲日产国码二区| 亚洲午夜无码AV毛片久久| segui久久国产精品| 久久人人爽爽爽人久久久| 天天做夜夜做久久做狠狠| 久久久久久久综合日本| 欧美久久久久久精选9999| 久久无码AV一区二区三区| 亚洲欧美国产精品专区久久| 国产成人香蕉久久久久| 久久人人爽爽爽人久久久| 久久久久亚洲AV成人网人人网站 | 久久99精品国产麻豆蜜芽| 国产亚洲精久久久久久无码77777 国产亚洲精品久久久久秋霞 | 国产精品久久久久9999| 久久久久久综合网天天| 99久久免费国产精品特黄| 欧美日韩精品久久久免费观看| 99久久人人爽亚洲精品美女| 99久久国产综合精品五月天喷水 | 久久久91精品国产一区二区三区| 欧美久久精品一级c片片| 日韩人妻无码一区二区三区久久99|