#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int ston(char *str,int l,int r){
int sum = 0;
for(int i = l;i < r; i++)
if(str[i] >= '0' && str[i] <= '9')
sum = sum * 16 + (str[i] - '0');
else
sum = sum * 16 + (str[i] - 'a' + 10);
return sum;
}
int main()
{
FILE *fin = fopen("in.txt", "r");
int n;
char str[200];
while(fgets(str,199,fin)){
cout << str << endl;
char lenth[10];
char source[20];
char dst[20];
char sp[20];
char dp[20];
for(int i = 6,j = 0 ;i <= 10; i++)
if(str[i] != ' ')
lenth[j++] = str[i];
lenth[4] = '\0';
for(int i = 36,j = 0 ;i <= 46; i++)
if(str[i] != ' ')
source[j++] = str[i];
source[8] = '\0';
for(int i = 48,j = 0 ;i <= 58; i++)
if(str[i] != ' ')
dst[j++] = str[i];
dst[8] = '\0';
for(int i = 48,j = 0 ;i <= 58; i++)
if(str[i] != ' ')
dst[j++] = str[i];
dst[8] = '\0';
for(int i = 60,j = 0 ;i <= 64; i++)
if(str[i] != ' ')
sp[j++] = str[i];
sp[4] = '\0';
for(int i = 66,j = 0 ;i <= 70; i++)
if(str[i] != ' ')
dp[j++] = str[i];
dp[4] = '\0';
cout << "Case #1" << endl;
cout << "Total length = " << ston(lenth,0,4) << " bytes" << endl;
cout << "Source = " ;
cout << ston(source,0,2) << "." << ston(source,2,4) << "." << ston(source,4,6) << "." << ston(source,6,8) << endl;
cout << "Destination = " ;
cout << ston(dst,0,2) << "." << ston(dst,2,4) << "." << ston(dst,4,6) << "." << ston(dst,6,8) << endl;
cout << "Source Port = " << ston(sp,0,4) << endl;
cout << "Destination Port = " << ston(dp,0,4) << endl;
}
fclose(fin);
system("pause");
return 0;
}
题目1475:IP数据包解析
最新推荐文章于 2022-01-13 18:20:45 发布