BOOL TRAFFIC_MONITOR(char *server, int port, char *community, int ifindex, int timeout, int retrydelay, CString strMonitorID, char *custpath, char *szReturn) { int s; struct sockaddr_in serv; int i = 0, ret = 0; int count = 1; struct snval *ptmp = NULL; struct snval *ptmpnext = NULL; long ifOperStatus = 0; Gauge ifSpeed = 0; Counter ifInOctets = 0, ifOutOctets = 0; Counter ifInErrors = 0, ifOutErrors = 0; if((ret = MakeSocket(server, port, s, serv)) < 0) { if(ret == -1) sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_Traffic_1%>")); else if(ret == -2) sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_Traffic_2%>")); else sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_Traffic_3%>")); return FALSE; } struct oid *poid = NULL, *ptmpoid = NULL; oid ifInOctets_oid = {{0x2b, 6, 1, 2, 1, 2, 2, 1, 10}, 9}; oid ifOutOctets_oid = {{0x2b, 6, 1, 2, 1, 2, 2, 1, 16}, 9}; ifInOctets_oid.id[ifInOctets_oid.len++] = ifindex; poid = ptmpoid = &ifInOctets_oid; ifOutOctets_oid.id[ifOutOctets_oid.len++] = ifindex; ptmpoid->next = &ifOutOctets_oid; ptmpoid = ptmpoid->next; struct snval *psnval = NULL; if((ret = SN_VALUES(s, serv, community, 1, poid, &psnval)) < 0) { if(ret == -1) sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_Dynamo_4%>"));//<%IDS_Dynamo_4%> else if(ret == -2) sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_Dynamo_5%>"));//<%IDS_Dynamo_5%> else if(ret == -3) sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_Dynamo_6%>"));//<%IDS_Dynamo_6%> else if(ret == -4) sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_Dynamo_7%>"));//<%IDS_Dynamo_7%> else if(ret == -5) sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_Dynamo_8%>"));//<%IDS_Dynamo_8%> else if(ret == -6) sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_Dynamo_9%>"));//<%IDS_Dynamo_9%> else if(ret == -7) sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_Dynamo_10%>"));//<%IDS_Dynamo_10%> else if(ret == -8) sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_Dynamo_11%>"));//<%IDS_Dynamo_11%> else sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_Dynamo_12%>"));//<%IDS_Dynamo_12%> goto w; } ptmp = psnval; ptmpnext = NULL; while(ptmp) { switch(count) { case 1: switch(ptmp->sv_type) { case ASN1_INT: case ASN1_COUNTER: case ASN1_GAUGE: case ASN1_TIMETICKS: case ASN1_COUNTER64: case ASN1_UINTEGER32: ifInOctets = ptmp->sv_val.sv_int; break; default: ifInOctets = 0; break; } break; case 2: switch(ptmp->sv_type) { case ASN1_INT: case ASN1_COUNTER: case ASN1_GAUGE: case ASN1_TIMETICKS: case ASN1_COUNTER64: case ASN1_UINTEGER32: ifOutOctets = ptmp->sv_val.sv_int; break; default: ifOutOctets = 0; break; } break; } count ++; ptmp = ptmp->next; } // computer the traffic { char ciniFile[256] = {0}, cinifile[256] = {0}; char cifIndex[256] = {0}; sprintf(cinifile, "snmp_%s_%s.ini", server, strMonitorID); sprintf(ciniFile, "%s\\%s", custpath, cinifile); sprintf(cifIndex, "ifIndex_%ld", ifindex); long ifTime = 0; Counter inOctets = 0, outOctets = 0; CTime curTime = CTime::GetCurrentTime(); ifTime = DFN_GetPrivateProfileInt(cifIndex, "ifTime", -99, ciniFile); inOctets = DFN_GetPrivateProfileInt(cifIndex, "ifInOctets", -99, ciniFile); outOctets = DFN_GetPrivateProfileInt(cifIndex, "ifOutOctets", -99, ciniFile); if(ifTime == -99 || inOctets == -99 || outOctets == -99) { CString strSection = _T(""); strSection.Format("ifIndex_%ld", ifindex); curTime = CTime::GetCurrentTime(); CString strMsg = _T(""); strMsg.Format("%ld", curTime.GetTime()); ::DFN_WritePrivateProfileString((LPCTSTR)strSection, "ifTime", (LPCTSTR)strMsg, ciniFile); strMsg.Format("%ld", ifInOctets); ::DFN_WritePrivateProfileString((LPCTSTR)strSection, "ifInOctets", (LPCTSTR)strMsg, ciniFile); strMsg.Format("%ld", ifOutOctets); ::DFN_WritePrivateProfileString((LPCTSTR)strSection, "ifOutOctets", (LPCTSTR)strMsg, ciniFile); WriteLogFile(strMonitorID, "读配置文件失败"); } else { float ifInOctetsRate = 0.0, ifOutOctetsRate = 0.0; Counter InOctets = 0, OutOctets = 0; CTime bTime(ifTime); curTime = CTime::GetCurrentTime(); CTimeSpan spanTime = curTime - bTime; long lInterval = spanTime.GetTotalSeconds(); if(lInterval == 0) lInterval = 1; if(lInterval <= 12 * 60 * 60 && lInterval >= 0) { InOctets = (unsigned int)(ifInOctets - inOctets < 0 ? (COUNTER_MAX - inOctets + ifInOctets) : (ifInOctets - inOctets)); //ifInOctetsRate = (float)InOctets / lInterval; //k ifInOctetsRate = (float)InOctets / lInterval/1024; OutOctets = (unsigned int)(ifOutOctets - outOctets < 0 ? (COUNTER_MAX - outOctets + ifOutOctets) : (ifOutOctets - outOctets)); // wang peng /1024 =k //Edit By Kevin.Yang PM: 14:55 2004.10.21 //Reason: 根据张鹏所提供的资料目前Cisio的MIF库中单位为KB,因此在 //得到的数据后不再需要除以1024 ifOutOctetsRate = (float)OutOctets / lInterval /1024; //ifOutOctetsRate = (float)OutOctets / lInterval; sprintf(szReturn, "ifIndex=%ld$ifInOctetsRate=%.2f$ifOutOctetsRate=%.2f$", ifindex, ifInOctetsRate * 8, ifOutOctetsRate * 8); } else { CString strLog; strLog.Format("时间总秒数%d", lInterval); // WriteLogFile(strMonitorID, strLog); } // WriteLogFile(strMonitorID, szReturn); //if(strlen(szReturn) == 0) //{ // printf("%d年%d月%d日 %d时%d分%d秒 \n%d年%d月%d日 %d时%d分%d秒 \n", // curTime.GetYear(), curTime.GetMonth(), curTime.GetDay(), // curTime.GetHour(), curTime.GetMinute(), curTime.GetSecond(), // bTime.GetYear(), bTime.GetMonth(), bTime.GetDay(), // bTime.GetHour(), bTime.GetMinute(), bTime.GetSecond()); //} char buff[256] = {0}; memset(buff, 0, 256); ltoa(curTime.GetTime(), buff, 10); DFN_WritePrivateProfileString(cifIndex, "ifTime", buff, ciniFile); memset(buff, 0, 256); ltoa(ifInOctets, buff, 10); DFN_WritePrivateProfileString(cifIndex, "ifInOctets", buff, ciniFile); memset(buff, 0, 256); ltoa(ifOutOctets, buff, 10); DFN_WritePrivateProfileString(cifIndex, "ifOutOctets", buff, ciniFile); } } w: ptmp = psnval; if(ptmp) ptmpnext = ptmp->next; while(ptmp) { free(ptmp); ptmp = ptmpnext; if(ptmp) ptmpnext = ptmp->next; } return !ret; }
BOOL CTRONETHERSTATUS_MONITOR(char *server, int port, char *community, CString strIndex, int rdelay, int timeout, int ngid, int nmid, char *cpath, char *szReturn) { int s; struct sockaddr_in serv; int i = 0, j = 0, ret = 0; int count = 1; struct snval *ptmp = NULL; struct snval *ptmpnext = NULL; u_int _64Octets = 0, _65to127Octets = 0; u_int _Curr64Octets = 0, _Curr65to127Octets = 0; if((ret = MakeSocket(server, port, s, serv)) < 0) { if(ret == -1) sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CheckPoint_1%>"));//<%IDS_CheckPoint_1%> else if(ret == -2) sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CheckPoint_2%>"));//<%IDS_CheckPoint_2%> else sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CheckPoint_3%>"));//<%IDS_CheckPoint_3%> return FALSE; } long index_id[32]; int index_id_c = 0; while(1) { i = strIndex.Find('.', 0); if(i > 0) index_id[index_id_c++] = atoi(strIndex); else if(i < 0 && strIndex.GetLength() > 0) { index_id[index_id_c++] = atoi(strIndex); break; } else break; strIndex.Delete(0, i + 1); } for(i = 0;i < index_id_c;i ++) { etherStatsPkts64Octets.id[etherStatsPkts64Octets.len++] = index_id[i]; etherStatsPkts65to127Octets.id[etherStatsPkts65to127Octets.len ++] = index_id[i]; } struct oid *poid = NULL, *ptmpoid = NULL; poid = ptmpoid = ðerStatsPkts64Octets; ptmpoid->next = ðerStatsPkts65to127Octets; ptmpoid = ptmpoid->next; struct snval *psnval = NULL; if((ret = SN_VALUES(s, serv, community, 1, poid, &psnval)) < 0) { if(ret == -1) sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CheckPoint_4%>"));//<%IDS_CheckPoint_4%> else if(ret == -2) sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CheckPoint_5%>"));//<%IDS_CheckPoint_5%> else if(ret == -3) sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CheckPoint_6%>"));//<%IDS_CheckPoint_6%> else if(ret == -4) sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CheckPoint_7%>"));//<%IDS_CheckPoint_7%> else if(ret == -5) sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CheckPoint_8%>"));//<%IDS_CheckPoint_8%> else if(ret == -6) sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CheckPoint_9%>"));//<%IDS_CheckPoint_9%> else if(ret == -7) sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CheckPoint_10%>"));//<%IDS_CheckPoint_10%> else if(ret == -8) sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CheckPoint_11%>"));//<%IDS_CheckPoint_11%> else sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CheckPoint_12%>"));//<%IDS_CheckPoint_12%> goto w; } _Curr64Octets = psnval->sv_val.sv_int; _Curr65to127Octets = psnval->next->sv_val.sv_int; { char ciniFile[256] = {0}, cinifile[256] = {0}; char cifIndex[256] = {0}; sprintf(cinifile, "ctron_%s_%d_%d.ini", server, ngid, nmid); sprintf(ciniFile, "%s\\%s", cpath, cinifile); sprintf(cifIndex, "ifIndex_%s", strIndex); long ifTime = 0; CTime curTime = CTime::GetCurrentTime(); ifTime = DFN_GetPrivateProfileInt(cifIndex, "ifTime", 0, ciniFile); _64Octets = DFN_GetPrivateProfileInt(cifIndex, "_64Octets", 0, ciniFile); _65to127Octets = DFN_GetPrivateProfileInt(cifIndex, "_65to127Octets", 0, ciniFile); if(ifTime == 0 && _64Octets == 0 && _65to127Octets == 0) { CString strSection = _T(""); strSection.Format("ifIndex_%s", strIndex); CString strMsg = _T(""); strMsg.Format("%ld", curTime.GetTime()); ::DFN_WritePrivateProfileString((LPCTSTR)strSection, "ifTime", (LPCTSTR)strMsg, ciniFile); strMsg.Format("%ld", _Curr64Octets); ::DFN_WritePrivateProfileString((LPCTSTR)strSection, "_64Octets", (LPCTSTR)strMsg, ciniFile); strMsg.Format("%ld", _Curr65to127Octets); ::DFN_WritePrivateProfileString((LPCTSTR)strSection, "_65to127Octets", (LPCTSTR)strMsg, ciniFile); } else { float _Rate64Octets = 0.0, _Rate65to127Octets = 0.0; Counter _Delta64Octets = 0, _Delta65to127Octets = 0; CTime bTime(ifTime); CTimeSpan spanTime = curTime - bTime; long lInterval = spanTime.GetTotalSeconds(); if(lInterval == 0) lInterval = 1; if(lInterval <= 12 * 60 * 60 && lInterval > 0) { _Delta64Octets = (unsigned int)(_Curr64Octets - _64Octets < 0 ? (COUNTER_MAX - _64Octets + _Curr64Octets) : (_Curr64Octets - _64Octets)); _Rate64Octets = (float)_Delta64Octets / lInterval; _Delta65to127Octets = (unsigned int)(_Curr65to127Octets - _65to127Octets < 0 ? (COUNTER_MAX - _65to127Octets + _Curr65to127Octets) : (_Curr65to127Octets - _65to127Octets)); _Rate65to127Octets = (float)_Delta65to127Octets / lInterval; sprintf(szReturn, "_Rate64Octets=%.2f$_Rate65to127Octets=%.2f$", _Rate64Octets, _Rate65to127Octets); } char buff[256] = {0}; memset(buff, 0, 256); ltoa(curTime.GetTime(), buff, 10); DFN_WritePrivateProfileString(cifIndex, "ifTime", buff, ciniFile); memset(buff, 0, 256); ltoa(_Curr64Octets, buff, 10); DFN_WritePrivateProfileString(cifIndex, "_64Octets", buff, ciniFile); memset(buff, 0, 256); ltoa(_Curr65to127Octets, buff, 10); DFN_WritePrivateProfileString(cifIndex, "_65to127Octets", buff, ciniFile); } } w: ptmp = psnval; if(ptmp) ptmpnext = ptmp->next; while(ptmp) { free(ptmp); ptmp = ptmpnext; if(ptmp) ptmpnext = ptmp->next; } return !ret; }
BOOL AIXERRPT_SSH_VALUE(char *server, int port, char *uid, char *pwd, char *inifile, int ngid, char* strmid, char *custpath, char *privatekeyfile, char *szReturn) { int ret = 0; char buffer[256] = {0}; char mbuffer[256] = {0}; char mdate[256] = {0}; char datebuff[64] = {0}; char curdate[64] = {0}; char szTmpIniFile[256] = {0}; int isChinese = 0; CString strResult = _T(""); if(DFNParser_GetPrivateProfileString("errorlog", "command", "", buffer, sizeof(buffer), inifile) <= 0) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_LOGFILE_02%>")); return FALSE; } if(DFNParser_GetPrivateProfileString("errorlog", "matchline", "", mbuffer, sizeof(mbuffer), inifile) <= 0) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_LOGFILE_02%>")); return FALSE; } if(DFNParser_GetPrivateProfileString("date", "command", "", mdate, sizeof(mdate), inifile) <= 0) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_LOGFILE_02%>")); return FALSE; } isChinese = DFNParser_GetPrivateProfileInt("date", "isChinese", 0, inifile); if((ret = ssh_command(server,port, uid, pwd, mdate, privatekeyfile, strResult)) < 0) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_LOGFILE_01%>")); return FALSE; } if(isChinese) { char week[64] = {0}; int years = 0, months = 0, days = 0, hours = 0, minutes = 0, seconds = 0; if(sscanf(strResult, "公元%d年%d月%d日 %s %d时%d分%d秒", &years, &months, &days, week, &hours, &minutes, &seconds) != 7) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_LOGFILE_01%>")); return FALSE; } sprintf(curdate, "%2.2d%2.2d%2.2d%2.2d%2.2d", months, days, hours, minutes, years % 100); } else { char week[16] = {0}; char month[16] = {0}; int day = 0; int hours = 0, mins = 0, secs = 0; char div[16] = {0}; int year = 0; if(sscanf(strResult, "%s %s %d %d:%d:%d %s %d", week, month, &day, &hours, &mins, &secs, div, &year) != 8) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_LOGFILE_01%>")); return FALSE; } if(convert_date(month, day, hours, mins, year, curdate)) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_LOGFILE_01%>")); return FALSE; } } sprintf(szTmpIniFile, "logfile.ini"); DFN_GetPrivateProfileString(strmid, "lastdate", "", datebuff, sizeof(datebuff), szTmpIniFile); if(!*datebuff) strncpy(datebuff, curdate, 10); char *ca = NULL; if(ca = strchr(buffer, '<')) { strncpy(ca, datebuff, 10); *(ca + 10) = 0; } strResult = _T(""); if((ret = ssh_command(server, port, uid, pwd, buffer, privatekeyfile, strResult)) < 0) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_LOGFILE_01%>")); return FALSE; } if(ret == 0 || !strstr(strResult, mbuffer)) { char tmp [256] = {0}; if(GetConfirms(strmid) > 0) DFN_WritePrivateProfileString(strmid, "needconfirm", _ltoa(FALSE, tmp, 10), szTmpIniFile); BOOL bChange = DFN_GetPrivateProfileInt(strmid, "needconfirm", FALSE, szTmpIniFile); if (!bChange) { //sprintf(szReturn, "status=%s$", FuncGetStringFromIDS("<%IDS_AIXErrpt_01%>")); sprintf(szReturn, "status=0$" ); //0: 未改变 1:改变 } else { //sprintf(szReturn, "status=%s$", FuncGetStringFromIDS("<%IDS_AIXErrpt_02%>")); sprintf(szReturn, "status=1$" ); //0: 未改变 1:改变 } } else { //sprintf(szReturn, "status=%s$", FuncGetStringFromIDS("<%IDS_AIXErrpt_02%>")); sprintf(szReturn, "status=1$" ); //0: 未改变 1:改变 FILE *fp = NULL; char szErrptLogFile[256] = {0}; sprintf(szErrptLogFile, "%s\\data\\TmpIniFile\\logfile_%s.log", FuncGetInstallRootPath(), strmid); if(fp = fopen(szErrptLogFile, "a+")) { fprintf(fp, "%s", strResult); fclose(fp); } char tmp [256] = {0}; DFN_WritePrivateProfileString(strmid, "needconfirm", _ltoa(TRUE, tmp, 10), szTmpIniFile); } DFN_WritePrivateProfileString(strmid, "lastdate", curdate, szTmpIniFile); return TRUE; }
bool AIXERRPT_TEL_VALUE(char *server, int port, char *uid, char *pwd, char *pserver, int pport, char *puid, char *ppwd, char *lprom, char *pprom, char *prom, char *inifile, int ngid, char* strmid, char *custpath, char *szReturn) { int ret = 0; int hSocket = 0; bool bResult = TRUE; char buffer[256] = {0}; char mbuffer[256] = {0}; char mdate[256] = {0}; char datebuff[64] = {0}; char curdate[64] = {0}; //char szIniFile[256] = {0}; char szTmpIniFile[256] = {0}; int isChinese = 0; //puts("ok"); /************************************* * For Reason Of Prompt */ int c = 0; char *ca = prom, *cb = NULL; char arprompt[PR_NUM][256]; memset(arprompt, 0, sizeof(arprompt)); LPGDATA pgd=new GDATA; memset(pgd,0,sizeof(GDATA)); while(cb = strchr(ca, 0x20)) { if(ca == cb) { ca ++; continue; } strncpy(arprompt[c++], ca, cb - ca); ca = cb + 1; } strcpy(arprompt[c++], ca); /***********************************/ hSocket = telnet_init(server, port, pserver, pport, puid, ppwd); if(hSocket <= 0) { if(hSocket == -1) sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_MQ_1%>"));//<%IDS_MQ_1%>"连接失败:域名解析" else if(hSocket == -2) sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_MQ_2%>"));//<%IDS_MQ_2%>"连接失败:通信初始化" else if(hSocket == -3) sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_MQ_3%>"));//<%IDS_MQ_3%>"连接失败:连接超时" else if(hSocket == -4) sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_MQ_4%>"));//<%IDS_MQ_4%>"代理服务器连接失败" else if(hSocket == -5) sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_MQ_5%>"));//<%IDS_MQ_5%>"代理服务器错误" else sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_MQ_6%>"));//<%IDS_MQ_6%>"连接失败:未知错误" bResult = FALSE; goto err; } Tel_Param param; if((ret = telnet_connect(hSocket, uid, pwd, lprom, pprom, arprompt,pgd,¶m)) < 0) { if(ret == -1) sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_MQ_7%>"));//<%IDS_MQ_7%>"登录失败:读数据超时" else if(ret == -2) sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_MQ_8%>"));//<%IDS_MQ_8%>"登录失败:读数据错误" else if(ret == -3) sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_MQ_9%>"));//<%IDS_MQ_9%>"登录失败:查找提示符" else if(ret == -4) sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_MQ_10%>"));//<%IDS_MQ_10%>"登录失败:查找登录提示符" else if(ret == -5) sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_MQ_11%>"));//<%IDS_MQ_11%>"登录失败:查找密码提示符" else sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_MQ_12%>"));//<%IDS_MQ_12%>"登录失败:未知错误" bResult = FALSE; goto err; } if(DFNParser_GetPrivateProfileString("errorlog", "command", "", buffer, sizeof(buffer), inifile) <= 0) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_LOGFILE_02%>")); bResult = FALSE; goto err; } if(DFNParser_GetPrivateProfileString("errorlog", "matchline", "", mbuffer, sizeof(mbuffer), inifile) <= 0) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_LOGFILE_02%>")); bResult = FALSE; goto err; } if(DFNParser_GetPrivateProfileString("date", "command", "", mdate, sizeof(mdate), inifile) <= 0) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_LOGFILE_02%>")); bResult = FALSE; goto err; } isChinese = DFNParser_GetPrivateProfileInt("date", "isChinese", 0, inifile); if((ret = telnet_command(hSocket, mdate,pgd,¶m)) < 0) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_LOGFILE_01%>")); bResult = FALSE; goto err; } if(isChinese) { char week[64] = {0}; int years = 0, months = 0, days = 0, hours = 0, minutes = 0, seconds = 0; if(sscanf(pgd->databuffer, "公元%d年%d月%d日 %s %d时%d分%d秒", &years, &months, &days, week, &hours, &minutes, &seconds) != 7) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_LOGFILE_01%>")); bResult = FALSE; goto err; } sprintf(curdate, "%2.2d%2.2d%2.2d%2.2d%2.2d", months, days, hours, minutes, years % 100); } else { char week[16] = {0}; char month[16] = {0}; int day = 0; int hours = 0, mins = 0, secs = 0; char div[16] = {0}; int year = 0; if(sscanf(pgd->databuffer, "%s %s %d %d:%d:%d %s %d", week, month, &day, &hours, &mins, &secs, div, &year) != 8) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_LOGFILE_01%>")); bResult = FALSE; goto err; } if(convert_date(month, day, hours, mins, year, curdate)) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_LOGFILE_01%>")); bResult = FALSE; goto err; } } sprintf(szTmpIniFile, "logfile.ini"); DFN_GetPrivateProfileString(strmid, "lastdate", "", datebuff, sizeof(datebuff), szTmpIniFile); if(!*datebuff) strncpy(datebuff, curdate, 10); if(ca = strchr(buffer, '<')) { strncpy(ca, datebuff, 10); *(ca + 10) = 0; } memset(pgd->databuffer, 0, BUF_SIZE); pgd->datalen = 0; printf("Error Report Command is :%s\n", buffer); if((ret = telnet_command(hSocket, buffer,pgd)) < 0) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_LOGFILE_01%>")); bResult = FALSE; goto err; } if(ret == 0 || !strstr(pgd->databuffer, mbuffer)) { char tmp [256] = {0}; //ofstream fout("aixerr.log",ios::app); //int i = GetConfirms(strmid); //fout << itoa(i, tmp, 10) <<"\r\n"; //fout << flush; //fout.close(); if(GetConfirms(strmid) > 0) DFN_WritePrivateProfileString(strmid, "needconfirm", _ltoa(FALSE, tmp, 10), szTmpIniFile); BOOL bChange = DFN_GetPrivateProfileInt(strmid, "needconfirm", FALSE, szTmpIniFile); if (!bChange) { sprintf(szReturn, "status=0$" ); //0: 未改变 1:改变 } else { sprintf(szReturn, "status=1$" ); } } else { sprintf(szReturn, "status=1$" ); FILE *fp = NULL; char szErrptLogFile[256] = {0}; sprintf(szErrptLogFile, "%s\\data\\TmpIniFile\\logfile_%s.log", FuncGetInstallRootPath(), strmid); if(fp = fopen(szErrptLogFile, "a+")) { fprintf(fp, "%s", pgd->databuffer); fclose(fp); } char tmp [256] = {0}; printf("Track record\n"); DFN_WritePrivateProfileString(strmid, "needconfirm", _ltoa(TRUE, tmp, 10), szTmpIniFile); } DFN_WritePrivateProfileString(strmid, "lastdate", curdate, szTmpIniFile); err: shutdown(hSocket, 0x02); closesocket(hSocket); delete pgd; return bResult; }
BOOL CISCOCONFIG_MONITOR62(char *server, int port, char *pwd, char *enpwd, char *pwdprompt, char *prompt, char *enpwdprompt, char *enprompt, char *encmd, char *monitorid, char *proxy_server, int proxy_port, char *proxy_uid, char *proxy_pwd, char *custpath, char *szReturn) { int ret = 0; int hSocket = 0; char runcmd[64] = {0}; printf("Server:%s\nPort:%d\n", server, port); hSocket = telnet_init(server, port, proxy_server, proxy_port, proxy_uid, proxy_pwd); if(hSocket <= 0) { if(hSocket == -1) sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CiscoLog_1%>"));//<%IDS_CiscoLog_1%> else if(hSocket == -2) sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CiscoLog_2%>"));//<%IDS_CiscoLog_2%> else if(hSocket == -3) sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CiscoLog_3%>"));//<%IDS_CiscoLog_3%> else if(hSocket == -4) sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CiscoLog_4%>"));//<%IDS_CiscoLog_4%> else if(hSocket == -5) sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CiscoLog_5%>"));//<%IDS_CiscoLog_5%> else sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CiscoLog_6%>"));//<%IDS_CiscoLog_6%> return FALSE; } LPGDATA pgd=new GDATA; memset(pgd,0,sizeof(GDATA)); printf("Connect Cisio network set\n"); if((ret = cisco_connect(hSocket, pwd, pwdprompt, prompt,pgd)) < 0) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CiscoLog_7%>"));//<%IDS_CiscoLog_7%> delete pgd; return FALSE; } strncpy(runcmd, "enable\r\n", 8); send(hSocket, runcmd, strlen(runcmd), 0); printf("Login Cisio Config\n"); if((ret = cisco_connect(hSocket, enpwd, enpwdprompt, enprompt,pgd)) < 0) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CiscoLog_8%>"));//<%IDS_CiscoLog_8%> delete pgd; return FALSE; } printf("Execute command\n"); if((ret = cisco_command(hSocket, encmd, enprompt,pgd)) < 0) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CiscoLog_9%>"));//<%IDS_CiscoLog_9%> delete pgd; return FALSE; } int index = 0; char prebuffer[MAX_READ_SIZE] = {0}; CString strBuffer(pgd->databuffer); index = strBuffer.Find("show running-config\r\n", 0); if(index >= 0) strBuffer.Delete(0, index + 21); if(!strBuffer.Right(strlen(enprompt)).Compare(enprompt)) { index = strBuffer.ReverseFind('\r'); if(index >= 0) strBuffer = strBuffer.Left(index); } FILE *cisco_fp = NULL; char prefile[256] = {0}; sprintf(prefile, "%s\\cisco_config_%s", custpath, monitorid); if((_access(prefile, 0x04)) == -1) { if((cisco_fp = fopen(prefile, "w")) == NULL) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CiscoLog_10%>"));//<%IDS_CiscoLog_10%> delete pgd; return FALSE; } sprintf(szReturn,"status=%s$", FuncGetStringFromIDS("<%IDS_CiscoLog_11%>"));//<%IDS_CiscoLog_11%> int i = fwrite(strBuffer, sizeof(char), strBuffer.GetLength(), cisco_fp); fclose(cisco_fp); delete pgd; return TRUE; } if((cisco_fp = fopen(prefile, "r")) == NULL) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CiscoLog_12%>"));//<%IDS_CiscoLog_12%> delete pgd; return FALSE; } int j = fread(prebuffer, sizeof(char), sizeof(prebuffer), cisco_fp); fclose(cisco_fp); prebuffer[j] = 0; int m = strlen(prebuffer); int n = strBuffer.GetLength(); if(!strBuffer.Compare(prebuffer)) { char buffer [256] = {0}; char tmp [256] = {0}; #if _DEBUG sprintf(buffer, "%s\\temp\\Cisio_logfile_%s.ini", FuncGetInstallRootPath(), server); #else sprintf(buffer, "%s\\MonitorManager\\temp\\logfile.ini", FuncGetInstallRootPath()); #endif BOOL bChange = DFN_GetPrivateProfileInt(monitorid, "needconfirm", FALSE, buffer); if (!bChange) { sprintf(szReturn, "status=%s$", FuncGetStringFromIDS("<%IDS_CiscoLog_13%>"));//<%IDS_CiscoLog_13%> delete pgd; return TRUE; } else { sprintf(szReturn, "status=%s$", FuncGetStringFromIDS("<%IDS_CiscoLog_14%>"));//<%IDS_CiscoLog_14%> delete pgd; return TRUE; } } else { sprintf(szReturn, "status=%s$", FuncGetStringFromIDS("<%IDS_CiscoLog_14%>"));//<%IDS_CiscoLog_14%> if((cisco_fp = fopen(prefile, "w")) == NULL) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CiscoLog_15%>"));//<%IDS_CiscoLog_15%> delete pgd; return FALSE; } int k = fwrite(strBuffer, sizeof(char), strBuffer.GetLength(), cisco_fp); fclose(cisco_fp); char buffer [256] = {0}; char tmp [256] = {0}; #if _DEBUG sprintf(buffer, "%s\\temp\\Cisio_logfile_%s.ini", FuncGetInstallRootPath(), server); #else sprintf(buffer, "%s\\MonitorManager\\temp\\logfile.ini", FuncGetInstallRootPath()); #endif DFN_WritePrivateProfileString(monitorid, "needconfirm", _ltoa(TRUE, tmp, 10), buffer); delete pgd; return TRUE; } }