📄 parameter.c
字号:
/*
**************************************************************
武汉理工大学嵌入式系统与网络安全实验室版权所有。非经允许,不得
拷贝与任何形式的利用。
**************************************************************
*/
/*
此文件为IIS相关程序库头文件。
*/
/*
修改日志:
2004,4,18 创建在原文件修改
*/
#include <string.h>
#include <stdlib.h>
#include "..\uart\uart.h"
#define PRA_GLOBAL
#include "parameter.h"
void Read_Parameter(void)
{
get_otheraddr("ipaddr",6);
get_otheraddr("netmask",7);
get_otheraddr("serverip",8);
get_otheraddr("multiaddr",9);
get_ethaddr();
get_otheraddr("code",4);
My_Parameter.destip = My_Parameter.serverip;
}
//unsigned long get_gaugevalue(char *valname, unsigned int valuelen)
//{
// char *p;
// char str[10];
// unsigned int namelen, i;
//
// p = (char *)0x18000;
// namelen = strlen(valname);
//
// while ((int)p < 0x19000)
// {
// if (memcmp(p,valname,namelen) == 0)
// {
// break;
// }
// else
// {
// p++;
// }
// }
//
// if((int)p == 0x19000)
// {
// return 0;
// }
//
// p += (namelen + 1);
//
// for(i=0; i<valuelen; i++)
// {
// str[i] = *(p++);
// }
//
// str[valuelen] = '\0';
//
// return (unsigned long) atol(str);
//}
void get_ethaddr(void)
{
char * p;
char tmp1,tmp2;
p = (char *)0x18000;
while ((int)p < 0x19000)
{
if (memcmp((char *)p,"ethaddr",7) == 0)
{
//Printf("find ethaddr , p is %x!!\n",p);
break;
}
else
p++;
}
p += 8;
/* get the first mac */
if (*p <= '9' && *p >= '0')
tmp1 = *p - '0';
else if (*p <= 'f' && *p >='a')
tmp1 = *p - 'a' + 0xa;
else
tmp1 = *p - 'A' + 0xa;
p++;
if (*p <= '9' && *p >= '0')
tmp2 = *p - '0';
else if (*p <= 'f' && *p >='a')
tmp2 = *p - 'a' + 0xa;
else
tmp2 = *p - 'A' + 0xa;
My_Parameter.mac[0] = (tmp1<<4) | tmp2 ;
// Printf("My_Parameter.mac[0] = 0x%x \n",My_Parameter.mac[0]);
/* get the second mac */
p += 2;
if (*p <= '9' && *p >= '0')
tmp1 = *p - '0';
else if (*p <= 'f' && *p >='a')
tmp1 = *p - 'a' + 0xa;
else
tmp1 = *p - 'A' + 0xa;
p++;
if (*p <= '9' && *p >= '0')
tmp2 = *p - '0';
else if (*p <= 'f' && *p >='a')
tmp2 = *p - 'a' + 0xa;
else
tmp2 = *p - 'A' + 0xa;
My_Parameter.mac[1] = (tmp1<<4) | tmp2 ;
// Printf("My_Parameter.mac[1] = 0x%x \n",My_Parameter.mac[1]);
/* get the third mac */
p += 2;
if (*p <= '9' && *p >= '0')
tmp1 = *p - '0';
else if (*p <= 'f' && *p >='a')
tmp1 = *p - 'a' + 0xa;
else
tmp1 = *p - 'A' + 0xa;
p++;
if (*p <= '9' && *p >= '0')
tmp2 = *p - '0';
else if (*p <= 'f' && *p >='a')
tmp2 = *p - 'a' + 0xa;
else
tmp2 = *p - 'A' + 0xa;
My_Parameter.mac[2] = (tmp1<<4) | tmp2 ;
// Printf("My_Parameter.mac[2] = 0x%x \n",My_Parameter.mac[2]);
/* get the fourth mac */
p += 2;
if (*p <= '9' && *p >= '0')
tmp1 = *p - '0';
else if (*p <= 'f' && *p >='a')
tmp1 = *p - 'a' + 0xa;
else
tmp1 = *p - 'A' + 0xa;
p++;
if (*p <= '9' && *p >= '0')
tmp2 = *p - '0';
else if (*p <= 'f' && *p >='a')
tmp2 = *p - 'a' + 0xa;
else
tmp2 = *p - 'A' + 0xa;
My_Parameter.mac[3] = (tmp1<<4) | tmp2 ;
// Printf("My_Parameter.mac[3] = 0x%x \n",My_Parameter.mac[3]);
/* get the fifth mac */
p += 2;
if (*p <= '9' && *p >= '0')
tmp1 = *p - '0';
else if (*p <= 'f' && *p >='a')
tmp1 = *p - 'a' + 0xa;
else
tmp1 = *p - 'A' + 0xa;
p++;
if (*p <= '9' && *p >= '0')
tmp2 = *p - '0';
else if (*p <= 'f' && *p >='a')
tmp2 = *p - 'a' + 0xa;
else
tmp2 = *p - 'A' + 0xa;
My_Parameter.mac[4] = (tmp1<<4) | tmp2 ;
// Printf("My_Parameter.mac[4] = 0x%x \n",My_Parameter.mac[4]);
/* get the sixth mac */
p += 2;
if (*p <= '9' && *p >= '0')
tmp1 = *p - '0';
else if (*p <= 'f' && *p >='a')
tmp1 = *p - 'a' + 0xa;
else
tmp1 = *p - 'A' + 0xa;
p++;
if (*p <= '9' && *p >= '0')
tmp2 = *p - '0';
else if (*p <= 'f' && *p >='a')
tmp2 = *p - 'a' + 0xa;
else
tmp2 = *p - 'A' + 0xa;
My_Parameter.mac[5] = (tmp1<<4) | tmp2 ;
// Printf("My_Parameter.mac[5] = 0x%x \n",My_Parameter.mac[5]);
Printf("mac: %02x:%02x:%02x:%02x:%02x:%02x\n",\
My_Parameter.mac[0],\
My_Parameter.mac[1],\
My_Parameter.mac[2],\
My_Parameter.mac[3],\
My_Parameter.mac[4],\
My_Parameter.mac[5]);
}
void get_otheraddr(char *s , int len)
{
char * p;
int i = 0;
char t1,t2,t3;
char a1,a2,a3,a4;
p = (char *)0x18000;
while ((int)p < 0x19000)
{
if (memcmp((char *)p,s,len) == 0)
{
//Printf("find ipaddr , p is %x!!\n",p);
break;
}
else
p++;
}
if (memcmp("ipaddr",s,6) == 0)
p += 7;
else if (memcmp("netmask",s,7) == 0)
p += 8;
else if (memcmp("serverip",s,8) == 0)
p += 9;
else if (memcmp("code",s,4) == 0)
p += 5;
else if (memcmp("multiaddr",s,4) == 0)
p += 10;
else
Printf("unknown ip search!!\n");
/* get the first one */
i = 0;
while (i<3)
{
if (*(p+i) == '.')
break;
else
i++;
}
if (i == 3)
{
if (*p <= '9' && *p >= '0')
t1 = *p - '0';
else if (*p <= 'f' && *p >='a')
t1 = *p - 'a' + 0xa;
else
t1 = *p - 'A' + 0xa;
p++;
if (*p <= '9' && *p >= '0')
t2 = *p - '0';
else if (*p <= 'f' && *p >='a')
t2 = *p - 'a' + 0xa;
else
t2 = *p - 'A' + 0xa;
p++;
if (*p <= '9' && *p >= '0')
t3 = *p - '0';
else if (*p <= 'f' && *p >='a')
t3 = *p - 'a' + 0xa;
else
t3 = *p - 'A' + 0xa;
a1 = t1*100 + t2*10 +t3;
//Printf("a1 = %d ",a1);
}
else if (i==2)
{
if (*p <= '9' && *p >= '0')
t1 = *p - '0';
else if (*p <= 'f' && *p >='a')
t1 = *p - 'a' + 0xa;
else
t1 = *p - 'A' + 0xa;
p++;
if (*p <= '9' && *p >= '0')
t2 = *p - '0';
else if (*p <= 'f' && *p >='a')
t2 = *p - 'a' + 0xa;
else
t2 = *p - 'A' + 0xa;
a1 = t1*10 +t2;
//Printf("a1 = %d ",a1);
}
else if (i==1)
{
if (*p <= '9' && *p >= '0')
t1 = *p - '0';
else if (*p <= 'f' && *p >='a')
t1 = *p - 'a' + 0xa;
else
t1 = *p - 'A' + 0xa;
a1 = t1;
//Printf("a1 = %d ",a1);
}
else
{
//Printf("known ip !!!\n");
}
p++;
p++;
//Printf("i = %d\n",i);
/* get the second one */
i = 0;
while (i<3)
{
if (*(p+i) == '.')
break;
else
i++;
}
if (i == 3)
{
if (*p <= '9' && *p >= '0')
t1 = *p - '0';
else if (*p <= 'f' && *p >='a')
t1 = *p - 'a' + 0xa;
else
t1 = *p - 'A' + 0xa;
p++;
if (*p <= '9' && *p >= '0')
t2 = *p - '0';
else if (*p <= 'f' && *p >='a')
t2 = *p - 'a' + 0xa;
else
t2 = *p - 'A' + 0xa;
p++;
if (*p <= '9' && *p >= '0')
t3 = *p - '0';
else if (*p <= 'f' && *p >='a')
t3 = *p - 'a' + 0xa;
else
t3 = *p - 'A' + 0xa;
a2 = t1*100 + t2*10 +t3;
//Printf("a2 = %d ",a2);
}
else if (i==2)
{
if (*p <= '9' && *p >= '0')
t1 = *p - '0';
else if (*p <= 'f' && *p >='a')
t1 = *p - 'a' + 0xa;
else
t1 = *p - 'A' + 0xa;
p++;
if (*p <= '9' && *p >= '0')
t2 = *p - '0';
else if (*p <= 'f' && *p >='a')
t2 = *p - 'a' + 0xa;
else
t2 = *p - 'A' + 0xa;
a2 = t1*10 +t2;
//Printf("a2 = %d ",a2);
}
else if (i==1)
{
if (*p <= '9' && *p >= '0')
t1 = *p - '0';
else if (*p <= 'f' && *p >='a')
t1 = *p - 'a' + 0xa;
else
t1 = *p - 'A' + 0xa;
a2 = t1;
//Printf("a2 = %d ",a2);
}
else
{
Printf("known ip !!!\n");
}
p++;
p++;
//Printf("i = %d\n",i);
/* get the third one */
i = 0;
while (i<3)
{
if (*(p+i) == '.')
break;
else
i++;
}
if (i == 3)
{
if (*p <= '9' && *p >= '0')
t1 = *p - '0';
else if (*p <= 'f' && *p >='a')
t1 = *p - 'a' + 0xa;
else
t1 = *p - 'A' + 0xa;
p++;
if (*p <= '9' && *p >= '0')
t2 = *p - '0';
else if (*p <= 'f' && *p >='a')
t2 = *p - 'a' + 0xa;
else
t2 = *p - 'A' + 0xa;
p++;
if (*p <= '9' && *p >= '0')
t3 = *p - '0';
else if (*p <= 'f' && *p >='a')
t3 = *p - 'a' + 0xa;
else
t3 = *p - 'A' + 0xa;
a3 = t1*100 + t2*10 +t3;
//Printf("a3 = %d ",a3);
}
else if (i==2)
{
if (*p <= '9' && *p >= '0')
t1 = *p - '0';
else if (*p <= 'f' && *p >='a')
t1 = *p - 'a' + 0xa;
else
t1 = *p - 'A' + 0xa;
p++;
if (*p <= '9' && *p >= '0')
t2 = *p - '0';
else if (*p <= 'f' && *p >='a')
t2 = *p - 'a' + 0xa;
else
t2 = *p - 'A' + 0xa;
a3 = t1*10 +t2;
//Printf("a3 = %d ",a3);
}
else if (i==1)
{
if (*p <= '9' && *p >= '0')
t1 = *p - '0';
else if (*p <= 'f' && *p >='a')
t1 = *p - 'a' + 0xa;
else
t1 = *p - 'A' + 0xa;
a3 = t1;
//Printf("a3 = %d ",a3);
}
p++;
p++;
//Printf("i = %d\n",i);
/* get the fourth one */
i = 0;
while (i<3)
{
if (*(p+i)>'9' || *(p+i)<'0' )
break;
else
i++;
}
if (i == 3)
{
if (*p <= '9' && *p >= '0')
t1 = *p - '0';
else if (*p <= 'f' && *p >='a')
t1 = *p - 'a' + 0xa;
else
t1 = *p - 'A' + 0xa;
p++;
if (*p <= '9' && *p >= '0')
t2 = *p - '0';
else if (*p <= 'f' && *p >='a')
t2 = *p - 'a' + 0xa;
else
t2 = *p - 'A' + 0xa;
p++;
if (*p <= '9' && *p >= '0')
t3 = *p - '0';
else if (*p <= 'f' && *p >='a')
t3 = *p - 'a' + 0xa;
else
t3 = *p - 'A' + 0xa;
a4 = t1*100 + t2*10 +t3;
//Printf("a4 = %d ",a4);
}
else if (i==2)
{
if (*p <= '9' && *p >= '0')
t1 = *p - '0';
else if (*p <= 'f' && *p >='a')
t1 = *p - 'a' + 0xa;
else
t1 = *p - 'A' + 0xa;
p++;
if (*p <= '9' && *p >= '0')
t2 = *p - '0';
else if (*p <= 'f' && *p >='a')
t2 = *p - 'a' + 0xa;
else
t2 = *p - 'A' + 0xa;
a4 = t1*10 +t2;
//Printf("a4 = %d ",a4);
}
else if (i==1)
{
if (*p <= '9' && *p >= '0')
t1 = *p - '0';
else if (*p <= 'f' && *p >='a')
t1 = *p - 'a' + 0xa;
else
t1 = *p - 'A' + 0xa;
a4 = t1;
//Printf("a4 = %d ",a4);
}
// else
// {
// Printf("known ip !!!\n");
// }
p++;
p++;
//Printf("i = %d\n",i);
if (memcmp("ipaddr",s,6) == 0)
{
My_Parameter.ipaddr = a1<<24 | a2<<16 | a3<< 8 | a4;
Printf("ipaddr: %d.%d.%d.%d \n",a1,a2,a3,a4);
}
else if (memcmp("netmask",s,7) == 0)
{
My_Parameter.mask = a1<<24 | a2<<16 | a3<< 8 | a4;
Printf("netmask: %d.%d.%d.%d \n",a1,a2,a3,a4);
}
else if (memcmp("serverip",s,8) == 0)
{
My_Parameter.serverip = a1<<24 | a2<<16 | a3<< 8 | a4;
Printf("serverip: %d.%d.%d.%d \n",a1,a2,a3,a4);
}
else if (memcmp("multiaddr",s,9) == 0)
{
My_Parameter.multiaddr = a1<<24 | a2<<16 | a3<< 8 | a4;
Printf("multiaddr: %d.%d.%d.%d \n",a1,a2,a3,a4);
}
else if (memcmp("code",s,4) == 0)
{
My_Parameter.code = a1<<24 | a2<<16 | a3<< 8 | a4;
Printf("code: 0x%x \n",My_Parameter.code);
}
else
Printf("unknown ip search!!\n");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -