当前位置: 首页 > news >正文

wordpress网站管理系统/网址大全

wordpress网站管理系统,网址大全,沈阳网上注册公司流程,贵阳建筑公司网站建设安装命令:sudo apt-get install libpcap-dev由于自己还没仔细研究过,暂时也只是想在这里留个记录,方便以后需要时使用。下面是百度百科里的例子。#include #include #include int main(int argc, char *argv[]){pcap_if_t *alldevs;pcap_if_t…

安装命令:sudo apt-get install libpcap-dev

由于自己还没仔细研究过,暂时也只是想在这里留个记录,方便以后需要时使用。下面是百度百科里的例子。

#include

#include

#include

int main(int argc, char *argv[])

{

pcap_if_t *alldevs;

pcap_if_t *device;

char errbuf[PCAP_ERRBUF_SIZE];

if(pcap_findalldevs(&alldevs, errbuf) == -1)

{

fprintf(stderr, "Error in pcap_findalldevs: %s\n", errbuf);

exit(EXIT_FAILURE);

}

device = alldevs;

for(; device != NULL; device = device->next)

{

printf("Device name: %s\n", device->name);

printf("Description: %s\n", device->description);

}

/* 不再需要设备列表了,释放它 */

pcap_freealldevs(alldevs);

return 0;

}

~

gcc pcap.c -o pcap -lpcap

sudo ./pcap   //记住一定要root权限,因为涉及了访问底层硬件了。

下面是抓包并以二进制方式打印的,对于调试网络包可能会经常使用到。

#include

#include

#include

#include

void getPacket(u_char * arg, const struct pcap_pkthdr * pkthdr, const u_char * packet)

{

int * id = (int *)arg;

printf("id: %d\n", ++(*id));

printf("Packet length: %d\n", pkthdr->len);

printf("Number of bytes: %d\n", pkthdr->caplen);

printf("Recieved time: %s", ctime((const time_t *)&pkthdr->ts.tv_sec));

int i;

for(i=0; ilen; ++i)

{

printf(" %02x", packet[i]);

if( (i + 1) % 16 == 0 )

{

printf("\n");

}

}

printf("\n\n");

}

int main()

{

char errBuf[PCAP_ERRBUF_SIZE], * devStr;

/* get a device */

devStr = pcap_lookupdev(errBuf);

if(devStr)

{

printf("success: device: %s\n", devStr);

}

else

{

printf("error: %s\n", errBuf);

exit(1);

}

/* open a device, wait until a packet arrives */

pcap_t * device = pcap_open_live(devStr, 65535, 1, 0, errBuf);

if(!device)

{

printf("error: pcap_open_live(): %s\n", errBuf);

exit(1);

}

/* wait loop forever */

int id = 0;

pcap_loop(device, -1, getPacket, (u_char*)&id);

pcap_close(device);

return 0;

}下面是抓取数据包并解析网络包,解析为物理层、网络层等。

#include

#include

#include

#include

#include

void tcp_packet_callback(unsigned char *argument,const struct pcap_pkthdr* pcap_header,const unsigned char *packet_content) {

struct tcphdr *tcpptr=(struct tcphdr *)(packet_content+14+20);

printf("----tcp protocol-----\n");

printf("source port:%d\n",ntohs(tcpptr->source));

printf("dest port:%d\n",ntohs(tcpptr->dest));

printf("sequence number:%u\n",ntohl(tcpptr->seq));

printf("acknowledgement number:%u\n",ntohl(tcpptr->ack_seq));

printf("header length:%d\n",tcpptr->doff*4);

printf("check sum:%d\n",ntohs(tcpptr->check));

printf("window size:%d\n",ntohs(tcpptr->window));

printf("urgent pointer:%d\n",ntohs(tcpptr->urg_ptr));

}

void ip_packet_callback(unsigned char *argument,const struct pcap_pkthdr* pcap_header,const unsigned char *packet_content) {

struct in_addr s,d;

struct iphdr *ipptr;

ipptr=(struct iphdr *)(packet_content+14);

printf("-----IP Protocol (network layer)-----\n");

printf("version:%d\n",ipptr->version);

printf("header length:%d\n",ipptr->ihl*4);

printf("tos:%d\n",ipptr->tos);

printf("total length:%d\n",ntohs(ipptr->tot_len));

printf("identification:%d\n",ntohs(ipptr->id));

printf("offset:%d\n",ntohs((ipptr->frag_off&0x1fff)*8));

printf("TTL:%d\n",ipptr->ttl);

printf("checksum:%d\n",ntohs(ipptr->check));

printf("protocol:%d\n",ipptr->protocol);

s.s_addr=ipptr->saddr;

d.s_addr=ipptr->daddr;

printf("source address:%s\n",inet_ntoa(s));

printf("destination address:%s\n",inet_ntoa(d));

switch(ipptr->protocol) {

case 6:

printf("tcp protocol\n");

tcp_packet_callback(argument,pcap_header,packet_content);

break;

case 1:

printf("icmp protocol\n");

break;

case 17:

printf("udp protocol\n");

break;

default:

break;

}

}

void arp_packet_callback(unsigned char *argument,const struct pcap_pkthdr* pcap_header,const unsigned char *packet_content) {

printf("------ARP Protocol-------\n");

}

void ethernet_packet_callback(unsigned char *argument,const struct pcap_pkthdr* pcap_header,const unsigned char *packet_content) {

struct ethhdr *ethptr;

struct iphdr *ipptr;

unsigned char *mac;

printf("--------------------------context----------\n");

//printf("%s\n", packet_content);

ethptr=(struct ethhdr *)packet_content;

printf("\n----ethernet protocol(phydical layer)-----\n");

printf("MAC source Address:\n");

mac=ethptr->h_source;

printf("%02x:%02x:%02x:%02x:%02x:%02x\n",*mac,*(mac+1),*(mac+2),*(mac+3),*(mac+4),*(mac+5));

printf("MAC destination Address:\n");

mac=ethptr->h_dest;

printf("%02x:%02x:%02x:%02x:%02x:%02x\n",*mac,*(mac+1),*(mac+2),*(mac+3),*(mac+4),*(mac+5));

printf("protocol:%04x\n",ntohs(ethptr->h_proto));

switch(ntohs(ethptr->h_proto)) {

case 0x0800:

printf("this is a IP protocol\n");

ip_packet_callback(argument,pcap_header,packet_content);

break;

case 0x0806:

printf("this is a ARP protocol\n");

arp_packet_callback(argument,pcap_header,packet_content);

break;

case 0x8035:

printf("this is a RARP protocol\n");

break;

default:

break;

}

}

int main(){

pcap_t *pt;

char *dev;

char errbuf[128];

struct bpf_program fp;

bpf_u_int32 maskp,netp;

int ret,i=0,inum;

int pcap_time_out=5;

char filter[128];

unsigned char *packet;

struct pcap_pkthdr hdr;

pcap_if_t *alldevs,*d;

if(pcap_findalldevs(&alldevs,errbuf)==-1) {

fprintf(stderr,"find interface failed!\n");

return;

}

for(d=alldevs;d;d=d->next){

printf("%d. %s\n",++i,d->name);

if(d->description)

printf("(%s)\n",d->description);

else

printf("(no description available)\n");

}

if(i==1)

dev=alldevs->name;

else {

printf("input a interface:(1-%d)",i);

scanf("%d",&inum);

if(inum<1||inum>i) {

printf("interface number out of range\n");

return;

}

for(d=alldevs,i=1;inext,i++);

dev=d->name;

}

/*

dev=pcap_lookupdev(errbuf);

if(dev==NULL){

fprintf(stderr,"%s\n",errbuf);

return;

}

*/

printf("dev:%s\n",dev);

ret=pcap_lookupnet(dev,&netp,&maskp,errbuf);

if(ret==-1){

fprintf(stderr,"%s\n",errbuf);

return;

}

pcap_dump_open(pt, "t.pcap");

pt=pcap_open_live(dev,BUFSIZ,1,pcap_time_out,errbuf);

if(pt==NULL){

fprintf(stderr,"open error :%s\n",errbuf);

return;

}

sprintf(filter,"");

if(pcap_compile(pt,&fp,filter,0,netp)==-1) {

fprintf(stderr,"compile error\n");

return;

}

if(pcap_setfilter(pt,&fp)==-1) {

fprintf(stderr,"setfilter error\n");

return;

}

pcap_loop(pt,-1,ethernet_packet_callback,NULL);

/*

while(1) {

printf("wait packet:filter %s\n",filter);

packet=(char *)pcap_next(pt,&hdr);

if(packet==NULL)

continue;

else

printf("get a packet\n");

}

*/

pcap_close(pt);

return 0;

}

下面这个网址有一些例子:

http://blog.csdn.net/htttw/article/details/7521053

http://www.lbrq.cn/news/1277767.html

相关文章:

  • 广西做网站/搜索引擎官网
  • 网站制作完成/如何创建网站站点
  • 网站建设费汇算清缴/电脑优化大师下载安装
  • 郑州网站推广平台/网络舆情优化公司
  • 上海有多少家公司/百度的seo关键词优化怎么弄
  • 政府网站建设ppt/sem优化软件哪家好
  • 成都住建局官网首页/海外seo网站推广
  • 珠海网站建设维护/如何网络推广新产品
  • 赌博游戏网站怎么做/制作自己的网页
  • 中山市住房建设局网站/seo属于运营还是技术
  • 被关闭的设计网站/搜索引擎推广方案
  • 品牌建设的三大理论/外贸网站推广seo
  • 在线制作logo图片/网站seo哪家好
  • 想学做网站学什么教程/网络推广哪个平台最好
  • 黄冈网站推广都有哪些渠道/百度一下官方网站
  • 上海 企业网站建设/短视频推广引流方案
  • 网络营销导向企业网站建设的原则包括/西安seo外包行者seo06
  • 网站流量一直下降/去了外包简历就毁了吗
  • 网站建设谈判技巧/推广网站都有哪些
  • 淮安市城市建设档案馆网站/完整的品牌推广方案
  • 厦门今天刚刚发生的新闻/seo推广怎么做视频教程
  • 花生壳做网站/免费舆情监测平台
  • 做网页设计网站有哪些/邯郸seo优化
  • 手机触屏网站开发/西安seo优化培训机构
  • 网站首页被k 不恢复/上往建站
  • 重新安wordpress网站/seo优化教程下载
  • 网站建设中的需求报告功能/推广app接单网
  • bootstrap建设淘宝网站/自己怎么做一个网页
  • 百度联盟做网站赚钱吗/图片百度搜索
  • 银川森林半岛/深圳seo优化服务商
  • MongoDB系列教程-教程概述
  • 系统学习算法:专题十五 哈希表
  • 如何用命令行快速提取PPT中的所有图片?
  • JavaScript:10个数组方法/属性
  • ubuntu资源共享samba 安装与配置 mac/windows共享ubuntu文件资源
  • 【WRF-Chem教程第七期】闪电-NOx 参数化方案详解