不会编程 但毕业设计要求编程 希望高手帮忙修改一下 我知道错误百出
我要完成的是一个网络流量分析软件,数据是已有的,不用抓包
感谢各位高手帮忙。时间紧迫,先谢谢大家了
# include<math.h>
# include<string.h>
# include<stdio.h>
# include<stdlib.h>
#define ftp 21
#define telnet 23
#define smtp 25
#define time 37
#define rap 38
#define nameserver 42
#define login 49
#define bootps 67
#define bootpc 68
#define tftp 69
#define finger 79
#define http 80
#define hostname 101
#define pop3 110
#define irc 194
#define echo 7
#define dns 53
#define snmp 161
FILE *fp;
int q,p,x;
int i,y=0,j;
int d[16];
int b[8];
int c[16];
int a[12160];
int sum1=0,sum2=0,sum3=0,sum4=0;
int sum5=0,sum6=0,sum7=0,sum8=0;
int sum9=0,sum10=0,sum11=0,sum12=0;
int sum13=0,sum14=0,sum15=0,sum16=0;
int sum17=0,sum18=0,sum19=0,sum20=0;
int sum21=0,sum22=0,sum23=0,sum24=0;
int sum25=0,sum26=0,sum27=0,sum28=0;
int sum29=0,sum30=0,sum31=0,sum32=0;
int sum33=0,sum34=0,sum35=0,sum36=0;
int sum37=0,sum38=0,sum39=0,sum40=0;
int sum41=0,sum42=0,sum43=0;
//检测十六位连续全零,表示一个数据包的开始
zore()
{
q=fp;
for(fp=0;fp+16;fp++)
{if (*fp==0) continue;
else return (0);
if(fp==q+16) return(1);}
}
main()
{
if((fp=fopen("shuju","rb"))==NULL)//文件打开,数据是放在文件里的,以太网直接抓取的
printf("can not open file\n");
for(i=0;i<12160;i++)
{if (zore()==1)
loop: fp=p;
fread(&a[i],12160,1,fp);
{if (zore()==1)
p=fp;
break;
}
if(zore()==NULL)
{ printf("ftp=%d UDP=%d\n",sum3,sum22);
printf("telnet=%d UDP=%d\n",sum4,sum23);
printf("smtp=%d UDP=%d\n",sum5,sum24);
printf("time=%d UDP=%d\n",sum6,sum25);
printf("rap=%d UDP=%d\n",sum7,sum26);
printf("nameserver=%d UDP=%d\n",sum8,sum27);
printf("login=%d UDP=%d\n",sum9,sum28);
printf("bootps=%d UDP=%d\n",sum10,sum29);
printf("bootpc=%d UDP=%d\n",sum11,sum30);
printf("tftp=%d UDP=%d\n",sum12,sum31);
printf("finger=%d UDP=%d\n",sum13,sum32);
printf("http=%d UDP=%d\n",sum14,sum33);
printf("hostname=%d UDP=%d\n",sum15,sum34);
printf("pop3=%d UDP=%d\n",sum16,sum35);
printf("irc=%d UDP=%d\n",sum17,sum36);
printf("echo=%d UDP=%d\n",sum18,sum37);
printf("dns=%d UDP=%d\n",sum19,sum38);
printf("snmp=%d UDP=%d\n",sum20,sum39);
printf("others=%d UDP=%d\n",sum21,sum40);
printf("IP=%d\n",sum1);
printf("%d\n",sum2);
printf("ICMP=%d\n",sum41);
printf("IGMP=%d\n",sum42);
fclose(fp);}
}
for(fp=112;fp<128;fp++)//如果是IP数据包,就往下执行,如果不是,就跳转
for(d[y]=fp;y<(fp+16);y++)
{if(d[y]&"0000100000000000"=="1111111111111111"){sum1=sum1+1;goto ippackopen();}
else {sum2=sum2+1;goto loop;}
}
}
ippackopen()
{
for(fp=200;fp<208;fp++)
for(j=0;j<16;j++)
b=fp;
if(b[j]&"00000110"=="11111111")//判断是否是TCP包,是就执行下面的判断,看是什么协议
{for(fp=288;fp<304;fp++)
{for(x=0;x<16;x++)
c=fp;
if(c[x]&"0000000000010101"=="1111111111111111") {sum3=sum3+1;goto loop;}
else if(c[x]&"0000000000010111"=="1111111111111111") {sum4=sum4+1;goto loop;}
else if(c[x]&"0000000000011001"=="1111111111111111") {sum5=sum5+1;goto loop;}
else if(c[x]&"0000000000100101"=="1111111111111111") {sum6=sum6+1;goto loop;}
else if(c[x]&"0000000000100110"=="1111111111111111") {sum7=sum7+1;goto loop;}
else if(c[x]&"0000000000101010"=="1111111111111111") {sum8=sum8+1;goto loop;}
else if(c[x]&"0000000000110001"=="1111111111111111") {sum9=sum9+1;goto loop;}
else if(c[x]&"0000000001000011"=="1111111111111111") {sum10=sum10+1;goto loop;}
else if(c[x]&"0000000001000100"=="1111111111111111") {sum11=sum11+1;goto loop;}
else if(c[x]&"0000000001000101"=="1111111111111111") {sum12=sum12+1;goto loop;}
else if(c[x]&"0000000001001111"=="1111111111111111") {sum13=sum13+1;goto loop;}
else if(c[x]&"0000000001010000"=="1111111111111111") {sum14=sum14+1;goto loop;}
else if(c[x]&"0000000001100101"=="1111111111111111") {sum15=sum15+1;goto loop;}
else if(c[x]&"0000000001101110"=="1111111111111111") {sum16=sum16+1;goto loop;}
else if(c[x]&"0000000011000010"=="1111111111111111") {sum17=sum17+1;goto loop;}
else if(c[x]&"0000000000000111"=="1111111111111111") {sum18=sum18+1;goto loop;}
else if(c[x]&"0000000000110101"=="1111111111111111") {sum19=sum19+1;goto loop;}
else if(c[x]&"0000000010100001"=="1111111111111111") {sum20=sum20+1;goto loop;}
else {sum21=sum21+1;goto loop;}
}
else if(b[j]&"00010001"=="11111111")//判断是否为UDP包
{for(fp=288;fp<304;fp++)
{for(x=0;x<16;x++)
c=fp;
if(c[x]&"0000000000010101"=="1111111111111111") {sum22=sum22+1;goto loop;}
else if(c[x]&"0000000000010111"=="1111111111111111") {sum23=sum23+1;goto loop;}
else if(c[x]&"0000000000011001"=="1111111111111111") {sum24=sum24+1;goto loop;}
else if(c[x]&"0000000000100101"=="1111111111111111") {sum25=sum25+1;goto loop;}
else if(c[x]&"0000000000100110"=="1111111111111111") {sum26=sum26+1;goto loop;}
else if(c[x]&"0000000000101010"=="1111111111111111") {sum27=sum27+1;goto loop;}
else if(c[x]&"0000000000110001"=="1111111111111111") {sum28=sum28+1;goto loop;}
else if(c[x]&"0000000001000011"=="1111111111111111") {sum29=sum29+1;goto loop;}
else if(c[x]&"0000000001000100"=="1111111111111111") {sum30=sum30+1;goto loop;}
else if(c[x]&"0000000001000101"=="1111111111111111") {sum31=sum31+1;goto loop;}
else if(c[x]&"0000000001001111"=="1111111111111111") {sum32=sum32+1;goto loop;}
else if(c[x]&"0000000001010000"=="1111111111111111") {sum33=sum33+1;goto loop;}
else if(c[x]&"0000000001100101"=="1111111111111111") {sum34=sum34+1;goto loop;}
else if(c[x]&"0000000001101110"=="1111111111111111") {sum35=sum35+1;goto loop;}
else if(c[x]&"0000000011000010"=="1111111111111111") {sum36=sum36+1;goto loop;}
else if(c[x]&"0000000000000111"=="1111111111111111") {sum37=sum37+1;goto loop;}
else if(c[x]&"0000000000110101"=="1111111111111111") {sum38=sum38+1;goto loop;}
else if(c[x]&"0000000010100001"=="1111111111111111") {sum39=sum39+1;goto loop;}
else {sum40=sum40+1;goto loop;}
}
else if(b[j]&"00000001"=="11111111") {sum41=sum41+1;goto loop;}//判断是否为ICMP
else if(b[j]&"00000010"=="11111111") {sum42=sum42+1;goto loop;}//判断是否为IGMP
else {sum43=sum43+1;goto loop;}//都不是则统计加一
}
感谢各位高手帮忙。时间紧迫,先谢谢大家了
# include<math.h>
# include<string.h>
# include<stdio.h>
# include<stdlib.h>
#define ftp 21
#define telnet 23
#define smtp 25
#define time 37
#define rap 38
#define nameserver 42
#define login 49
#define bootps 67
#define bootpc 68
#define tftp 69
#define finger 79
#define http 80
#define hostname 101
#define pop3 110
#define irc 194
#define echo 7
#define dns 53
#define snmp 161
FILE *fp;
int q,p,x;
int i,y=0,j;
int d[16];
int b[8];
int c[16];
int a[12160];
int sum1=0,sum2=0,sum3=0,sum4=0;
int sum5=0,sum6=0,sum7=0,sum8=0;
int sum9=0,sum10=0,sum11=0,sum12=0;
int sum13=0,sum14=0,sum15=0,sum16=0;
int sum17=0,sum18=0,sum19=0,sum20=0;
int sum21=0,sum22=0,sum23=0,sum24=0;
int sum25=0,sum26=0,sum27=0,sum28=0;
int sum29=0,sum30=0,sum31=0,sum32=0;
int sum33=0,sum34=0,sum35=0,sum36=0;
int sum37=0,sum38=0,sum39=0,sum40=0;
int sum41=0,sum42=0,sum43=0;
//检测十六位连续全零,表示一个数据包的开始
zore()
{
q=fp;
for(fp=0;fp+16;fp++)
{if (*fp==0) continue;
else return (0);
if(fp==q+16) return(1);}
}
main()
{
if((fp=fopen("shuju","rb"))==NULL)//文件打开,数据是放在文件里的,以太网直接抓取的
printf("can not open file\n");
for(i=0;i<12160;i++)
{if (zore()==1)
loop: fp=p;
fread(&a[i],12160,1,fp);
{if (zore()==1)
p=fp;
break;
}
if(zore()==NULL)
{ printf("ftp=%d UDP=%d\n",sum3,sum22);
printf("telnet=%d UDP=%d\n",sum4,sum23);
printf("smtp=%d UDP=%d\n",sum5,sum24);
printf("time=%d UDP=%d\n",sum6,sum25);
printf("rap=%d UDP=%d\n",sum7,sum26);
printf("nameserver=%d UDP=%d\n",sum8,sum27);
printf("login=%d UDP=%d\n",sum9,sum28);
printf("bootps=%d UDP=%d\n",sum10,sum29);
printf("bootpc=%d UDP=%d\n",sum11,sum30);
printf("tftp=%d UDP=%d\n",sum12,sum31);
printf("finger=%d UDP=%d\n",sum13,sum32);
printf("http=%d UDP=%d\n",sum14,sum33);
printf("hostname=%d UDP=%d\n",sum15,sum34);
printf("pop3=%d UDP=%d\n",sum16,sum35);
printf("irc=%d UDP=%d\n",sum17,sum36);
printf("echo=%d UDP=%d\n",sum18,sum37);
printf("dns=%d UDP=%d\n",sum19,sum38);
printf("snmp=%d UDP=%d\n",sum20,sum39);
printf("others=%d UDP=%d\n",sum21,sum40);
printf("IP=%d\n",sum1);
printf("%d\n",sum2);
printf("ICMP=%d\n",sum41);
printf("IGMP=%d\n",sum42);
fclose(fp);}
}
for(fp=112;fp<128;fp++)//如果是IP数据包,就往下执行,如果不是,就跳转
for(d[y]=fp;y<(fp+16);y++)
{if(d[y]&"0000100000000000"=="1111111111111111"){sum1=sum1+1;goto ippackopen();}
else {sum2=sum2+1;goto loop;}
}
}
ippackopen()
{
for(fp=200;fp<208;fp++)
for(j=0;j<16;j++)
b=fp;
if(b[j]&"00000110"=="11111111")//判断是否是TCP包,是就执行下面的判断,看是什么协议
{for(fp=288;fp<304;fp++)
{for(x=0;x<16;x++)
c=fp;
if(c[x]&"0000000000010101"=="1111111111111111") {sum3=sum3+1;goto loop;}
else if(c[x]&"0000000000010111"=="1111111111111111") {sum4=sum4+1;goto loop;}
else if(c[x]&"0000000000011001"=="1111111111111111") {sum5=sum5+1;goto loop;}
else if(c[x]&"0000000000100101"=="1111111111111111") {sum6=sum6+1;goto loop;}
else if(c[x]&"0000000000100110"=="1111111111111111") {sum7=sum7+1;goto loop;}
else if(c[x]&"0000000000101010"=="1111111111111111") {sum8=sum8+1;goto loop;}
else if(c[x]&"0000000000110001"=="1111111111111111") {sum9=sum9+1;goto loop;}
else if(c[x]&"0000000001000011"=="1111111111111111") {sum10=sum10+1;goto loop;}
else if(c[x]&"0000000001000100"=="1111111111111111") {sum11=sum11+1;goto loop;}
else if(c[x]&"0000000001000101"=="1111111111111111") {sum12=sum12+1;goto loop;}
else if(c[x]&"0000000001001111"=="1111111111111111") {sum13=sum13+1;goto loop;}
else if(c[x]&"0000000001010000"=="1111111111111111") {sum14=sum14+1;goto loop;}
else if(c[x]&"0000000001100101"=="1111111111111111") {sum15=sum15+1;goto loop;}
else if(c[x]&"0000000001101110"=="1111111111111111") {sum16=sum16+1;goto loop;}
else if(c[x]&"0000000011000010"=="1111111111111111") {sum17=sum17+1;goto loop;}
else if(c[x]&"0000000000000111"=="1111111111111111") {sum18=sum18+1;goto loop;}
else if(c[x]&"0000000000110101"=="1111111111111111") {sum19=sum19+1;goto loop;}
else if(c[x]&"0000000010100001"=="1111111111111111") {sum20=sum20+1;goto loop;}
else {sum21=sum21+1;goto loop;}
}
else if(b[j]&"00010001"=="11111111")//判断是否为UDP包
{for(fp=288;fp<304;fp++)
{for(x=0;x<16;x++)
c=fp;
if(c[x]&"0000000000010101"=="1111111111111111") {sum22=sum22+1;goto loop;}
else if(c[x]&"0000000000010111"=="1111111111111111") {sum23=sum23+1;goto loop;}
else if(c[x]&"0000000000011001"=="1111111111111111") {sum24=sum24+1;goto loop;}
else if(c[x]&"0000000000100101"=="1111111111111111") {sum25=sum25+1;goto loop;}
else if(c[x]&"0000000000100110"=="1111111111111111") {sum26=sum26+1;goto loop;}
else if(c[x]&"0000000000101010"=="1111111111111111") {sum27=sum27+1;goto loop;}
else if(c[x]&"0000000000110001"=="1111111111111111") {sum28=sum28+1;goto loop;}
else if(c[x]&"0000000001000011"=="1111111111111111") {sum29=sum29+1;goto loop;}
else if(c[x]&"0000000001000100"=="1111111111111111") {sum30=sum30+1;goto loop;}
else if(c[x]&"0000000001000101"=="1111111111111111") {sum31=sum31+1;goto loop;}
else if(c[x]&"0000000001001111"=="1111111111111111") {sum32=sum32+1;goto loop;}
else if(c[x]&"0000000001010000"=="1111111111111111") {sum33=sum33+1;goto loop;}
else if(c[x]&"0000000001100101"=="1111111111111111") {sum34=sum34+1;goto loop;}
else if(c[x]&"0000000001101110"=="1111111111111111") {sum35=sum35+1;goto loop;}
else if(c[x]&"0000000011000010"=="1111111111111111") {sum36=sum36+1;goto loop;}
else if(c[x]&"0000000000000111"=="1111111111111111") {sum37=sum37+1;goto loop;}
else if(c[x]&"0000000000110101"=="1111111111111111") {sum38=sum38+1;goto loop;}
else if(c[x]&"0000000010100001"=="1111111111111111") {sum39=sum39+1;goto loop;}
else {sum40=sum40+1;goto loop;}
}
else if(b[j]&"00000001"=="11111111") {sum41=sum41+1;goto loop;}//判断是否为ICMP
else if(b[j]&"00000010"=="11111111") {sum42=sum42+1;goto loop;}//判断是否为IGMP
else {sum43=sum43+1;goto loop;}//都不是则统计加一
}
...全文
相关推荐
关于英文简历的撰写,一些有用的东西
关于英文简历的撰写,很不错的。 希望大家多多支持啊
【雕爷学编程】MicroPython手册之 ESP32-CAM 搭建照相亭
第三个案例在简单照相亭的基础上增加了打印照片的功能,用户按下按钮即可拍照并打印照片,并在LCD上显示打印成功的信息。数据存储和处理能力:ESP32-CAM板载的Flash存储器和丰富的图像处理库,可用于存储和处理拍摄的照片,提供良好的用户体验。图像质量和存储空间:照相亭需要提供高质量的图像拍摄功能,并考虑存储照片所需的存储空间,以满足用户对照片质量和数量的需求。硬件稳定性:照相亭作为一个公共设施,需要具备良好的硬件稳定性和抗干扰能力,以应对复杂的使用环境和高强度的使用频率。
XIAO ESP32-C5 MicroPython开发指南:从Wi-Fi 6连接到物联网项目实战
MicroPython是一种运行在微控制器上的精简Python 3解释器,它允许开发者使用熟悉的Python语法进行嵌入式编程,极大降低了硬件开发的门槛。其工作原理是将Python代码编译为字节码,在资源受限的MCU上高效执行,实现了高级语言与底层硬件的桥梁。这一技术价值在于显著提升了物联网(IoT)和嵌入式系统的开发效率与可访问性,尤其适合快速原型验证、教育及中小型智能设备开发。在应用场景上,MicroPython广泛应用于智能家居传感器节点、环境监测设备、机器人控制以及各类需要网络连接的嵌入式装置。本文
暑假支教社会实践报告 英语教师.doc
暑假支教社会实践报告 英语教师.doc
最常用的英文简历模板.doc
最常用的英文简历模板.doc


