#include <stdio.h>
#include <stdlib.h>
#include <arpa/inet.h>
// int* generateRange(char* code) {
// int start, end;
// sscanf(code, "%d-%d", &start, &end); // 解析字符串获取起始和结束数值
// int size = end - start + 1;
// int* result = (int*)malloc(size * sizeof(int)); // 动态分配数组内存
// for (int i = 0; i < size; i++) {
// result[i] = start + i; // 将起始和结束之间的整数存入数组
// }
// return result;
// }
// char *strReplace(char *str, char *oldstr, char *newstr)
// {
// int j = 0;
// char bstr[strlen(str)+10]; // 转换缓冲区
// memset(bstr, 0, sizeof(bstr));
// for (j = 0; j < strlen(str); j++)
// {
// if (!strncmp(str + j, oldstr, strlen(oldstr)))
// { // 查找目标字符串
// strcat(bstr, newstr);
// j += strlen(oldstr) - 1;
// }
// else
// {
// strncat(bstr, str + j, 1); // 保存一字节进缓冲区
// }
// }
// strcpy(str, bstr);
// return str;
// }
// int GetAimNum(char* str, char aim)
// {
// int str_len = strlen(str);
// int count = 0;
// for (int i = 0; i < str_len; i++)
// {
// if (*str == aim)
// count++;
// str++;
// }
// return count;
// }
// void Replace(char* str, char *oldchar, char* newstr)
// {
// int i = strlen(str);//i指向有效字符串的位置即'\0'字符前
// int newstr_len = strlen(newstr);//求取 替换字符串 的有效长度
// int count = GetAimNum(str, oldchar);//获取字符串中的替换字符长度
// int j = i + count * (newstr_len - 1);
// //j指向末尾字符加要替换字符数乘(替换字符串长度-1)
// while (i >= 0)//如果i小于0说明已经遍历整个字符串
// {
// if (str[i] != oldchar)//如果i下标对于的字符不是要替换的字符就将它向后移
// {
// str[j--] = str[i--];
// }
// else//如果是就用替换字符串替换要替换字符
// {
// for (int z = newstr_len - 1; z >= 0; z--)
// {
// str[j--] = newstr[z];
// }
// i--;
// }
// }
// }
// int main() {
// char code[64] = "1234%567%%89";
// char code2[] = "233";
// char tr069en = 0;
// tr069en = atoi(tr069en);
// printf("tr069en = %d\n", tr069en);
// // int* range = generateRange(code);
// char buffer[64] = {0};
// Replace(code, '%', "%%");
// printf("code=%s\n", code);
// // int a = 4, b = 6;
// // swap_int1(a,b);
// // print("a=%d, b=%d\n", a, b);
// // int size = 20 - 10 + 1;
// // for (int i = 0; i < size; i++) {
// // printf("%d ", range[i]);
// // }
// // free(range); // 释放动态分配的数组内存
// return 0;
// }
typedef unsigned char UINT8;
typedef unsigned short UINT16;
typedef unsigned int UINT32;
typedef struct {
UINT32 IpAddress;
UINT32 Mask;
UINT32 Gateway;
UINT32 PrimaryDns;
UINT32 SecondaryDns;
UINT32 CurrentAddress;
UINT32 CurrentMask;
UINT32 CurrentGateway;
UINT32 CurrentPrimaryDns;
UINT32 CurrentSecondaryDns;
} __attribute__((aligned)) MIB_TABLE_IP_HOST_CFG_DATA_T;
int mibget(MIB_TABLE_IP_HOST_CFG_DATA_T *entry){
MIB_TABLE_IP_HOST_CFG_DATA_T test;
test.IpAddress = 23439552;
if(entry == NULL) {
printf("entry == NULL\n");
}
MIB_TABLE_IP_HOST_CFG_DATA_T *newRowIpHost = entry;
newRowIpHost->IpAddress = test.IpAddress;
return 0;
}
int main() {
MIB_TABLE_IP_HOST_CFG_DATA_T Entry;
char buf[32] = {0};
ulong addr = 0;
char buf2[32] = {0};
strcpy(buf2, "192.168.101.1");
addr = inet_addr(buf2);
printf("addr = %d\n", addr);
mibget(&Entry);
inet_ntop(AF_INET, (void *)&Entry.IpAddress, buf, sizeof(buf));
printf("Entry.IpAddress = %d\n", Entry.IpAddress);
printf("Entry.IpAddress buf= %s\n", buf);
printf("Entry.Mask = %d\n", Entry.Mask);
return 0;
}