📄 opendhcpd.cpp
字号:
{ if (target != dp) { *dp = 0; dp++; } kount++; } found = false; *dp = *source; dp++; source++; } *dp = 0; dp++; *dp = 0; //printf("%s\n", target); return kount;}char* myTrim(char *target, char *source){ while ((*source) && (*source) <= 32) source++; int i = 0; for (; i < 511 && source[i]; i++) target[i] = source[i]; target[i] = source[i]; i--; for (; i >= 0 && target[i] <= 32; i--) target[i] = 0; return target;}void mySplit(char *name, char *value, char *source, char splitChar){ int i = 0; int j = 0; int k = 0; for (; source[i] && j <= 510 && source[i] != splitChar; i++, j++) { name[j] = source[i]; } if (source[i]) { i++; for (; k <= 510 && source[i]; i++, k++) { value[k] = source[i]; } } name[j] = 0; value[k] = 0; myTrim(name, name); myTrim(value, value); //printf("%s %s\n", name, value);}char *strqtype(char *buff, BYTE qtype){ switch (qtype) { case 1: strcpy(buff, "A"); break; case 2: strcpy(buff, "NS"); break; case 3: strcpy(buff, "MD"); break; case 4: strcpy(buff, "MF"); break; case 5: strcpy(buff, "CNAME"); break; case 6: strcpy(buff, "SOA"); break; case 7: strcpy(buff, "MB"); break; case 8: strcpy(buff, "MG"); break; case 9: strcpy(buff, "MR"); break; case 10: strcpy(buff, "NULL"); break; case 11: strcpy(buff, "WKS"); break; case 12: strcpy(buff, "PTR"); break; case 13: strcpy(buff, "HINFO"); break; case 14: strcpy(buff, "MINFO"); break; case 15: strcpy(buff, "MX"); break; case 16: strcpy(buff, "TXT"); break; case 28: strcpy(buff, "AAAA"); break; case 251: strcpy(buff, "IXFR"); break; case 252: strcpy(buff, "AXFR"); break; case 253: strcpy(buff, "MAILB"); break; case 254: strcpy(buff, "MAILA"); break; default: strcpy(buff, "ANY"); break; } return buff;}WORD listSections(char *buffer, int sizeofbuffer, char *fileName){ WORD kount = 0; char buff[512]; FILE *f = fopen(fileName, "rt"); while (f && fgets(buff, 511, f)) { if (strchr(buff, '[') == buff) { char *secend = strchr(buff, ']'); if (secend) { *secend = 0; buffer += sprintf(buffer, "%s", &buff[1]); buffer++; kount++; } } } if (f) fclose(f); else if (iniFile[0]) { sprintf(logBuff, "Warning: Failed to open ini File %s", iniFile); logMess(logBuff, 1); } *buffer = 0; buffer++; *buffer = 0; return kount;}bool getSection(char *sectionName, char *buffer, BYTE serial, char *fileName){ //printf("%s=%s\n",fileName,sectionName); char section[128]; sprintf(section, "[%s]", sectionName); myUpper(section); FILE *f = fopen(fileName, "rt"); char buff[512]; BYTE found = 0; if (f) { while (fgets(buff, 511, f)) { myUpper(buff); myTrim(buff, buff); if (strstr(buff, section) == buff) { found++; if (found == serial) { //printf("%s=%s\n",fileName,sectionName); while (fgets(buff, 511, f)) { myTrim(buff, buff); if (strstr(buff, "[") == buff) break; if ((*buff) >= '0' && (*buff) <= '9' || (*buff) >= 'A' && (*buff) <= 'Z' || (*buff) >= 'a' && (*buff) <= 'z' || ((*buff) && strchr("/\\?*", (*buff)))) { buffer += sprintf(buffer, "%s", buff); buffer++; } } break; } } } fclose(f); } *buffer = 0; *(buffer + 1) = 0; return (found == serial);}DWORD getClassNetwork(DWORD ip){ data15 data; data.ip = ip; data.octate[3] = 0; if (data.octate[0] < 192) data.octate[2] = 0; if (data.octate[0] < 128) data.octate[1] = 0; return data.ip;}/*char *IP2Auth(DWORD ip){data15 data;data.ip = ip;if (data.octate[0] >= 192)sprintf(tempbuff, "%u.%u.%u", data.octate[2], data.octate[1], data.octate[0]);else if (data.octate[0] >= 128)sprintf(tempbuff, "%u.%u", data.octate[1], data.octate[0]);elsesprintf(tempbuff, "%u", data.octate[0]);strcat(tempbuff, arpa);return tempbuff;}*/char *IP2String(char *target, DWORD ip){ data15 inaddr; inaddr.ip = ip; sprintf(target, "%u.%u.%u.%u", inaddr.octate[0], inaddr.octate[1], inaddr.octate[2], inaddr.octate[3]); return target;}bool addServer(DWORD *array, DWORD ip){ for (BYTE i = 0; i < MAX_SERVERS; i++) { if (!ip || array[i] == ip) return 0; else if (!array[i]) { array[i] = ip; return 1; } } return 0;}DWORD *findServer(DWORD *array, DWORD ip){ if (ip) { for (BYTE i = 0; i < MAX_SERVERS && array[i]; i++) { if (array[i] == ip) return &(array[i]); } } return 0;}bool isIP(char *string){ int j = 0; for (; *string; string++) { if (*string == '.') j++; else if (*string < '0' || *string > '9') return 0; } if (j == 3) return 1; else return 0;}char *toBase64(BYTE *source, BYTE length){ BYTE a = 0, b = 0, i = 0; char *t = tempbuff; for (; length; length--, source++) { i += 2; a = (*source) >> i; *t = base64[a + b]; t++; b = (*source) << (8 - i); b >>= 2; if (i == 6) { *t = base64[b]; t++; i = b = 0; } } if (i) { *t = base64[b]; t++; } *t = 0; //printf("%s\n",tempbuff); return tempbuff;}BYTE getBaseValue(BYTE a){ if (a >= 'A' && a <= 'Z') a -= 'A'; else if (a >= 'a' && a <= 'z') a = a - 'a' + 26; else if (a >= '0' && a <= '9') a = a - '0' + 52; else if (a == '+') a = 62; else if (a == '/') a = 63; else a = 255; return a;}BYTE fromBase64(BYTE *target, char *source){ //printf("SOURCE=%s\n", source); BYTE b = 0; BYTE shift = 4; BYTE bp_hlen = (3*strlen(source))/4; if (*source) { b = getBaseValue(*source); *target = b << 2; source++; while (*source) { b = getBaseValue(*source); (*target) += (b >> (8 - shift)); target++; (*target) = (b << shift); shift += 2; if (shift > 8) { source++; if (*source) { b = getBaseValue(*source); *target = b << 2; shift = 4; } else break; } source++; } } //printf("SIZE=%u\n", bp_hlen); return bp_hlen;}char *hex2String(char *target, BYTE *hex, BYTE bytes, char sepChar){ char *dp = target; dp += sprintf(target, "%02x", *hex); for (int i = 1; i < bytes; i++) if (sepChar) dp += sprintf(dp, "%c%02x", sepChar, *(hex + i)); else dp += sprintf(dp, "%02x", *(hex + i)); return target;}char *IP62String(char *target, BYTE *hex){ BYTE i = 0; *target = 0; bool thisZero = false; bool prevZero = false; char *dp; while (true) { prevZero = thisZero; thisZero = true; if (*(hex + i)) { thisZero = false; dp = target + strlen(target); sprintf(dp, "%x", *(hex + i)); } i++; if (*(hex + i)) { thisZero = false; dp = target + strlen(target); sprintf(dp, "%x", *(hex + i)); } i++; if (i >= 15) break; if (!thisZero || !prevZero) { dp = target + strlen(target); strcat(dp, ":"); } } return target;}char *getHexValue(BYTE *target, char *source, BYTE *size){ if (*size) memset(target, 0, (*size)); for ((*size) = 0; (*source) && (*size) < UCHAR_MAX; (*size)++, target++) { if ((*source) >= '0' && (*source) <= '9') { (*target) = (*source) - '0'; } else if ((*source) >= 'a' && (*source) <= 'f') { (*target) = (*source) - 'a' + 10; } else if ((*source) >= 'A' && (*source) <= 'F') { (*target) = (*source) - 'A' + 10; } else { return source; } source++; if ((*source) >= '0' && (*source) <= '9') { (*target) *= 16; (*target) += ((*source) - '0'); } else if ((*source) >= 'a' && (*source) <= 'f') { (*target) *= 16; (*target) += (((*source) - 'a') + 10); } else if ((*source) >= 'A' && (*source) <= 'F') { (*target) *= 16; (*target) += (((*source) - 'A') + 10); } else if ((*source) == ':') { source++; continue; } else if (*source) { return source; } else { continue; } source++; if ((*source) == ':') { source++; } else if (*source
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -