#include <iostream>
#include <cstring>
#include <string>
#include <stdlib.h> // system 命令使用头文件
#include <fstream> // 读写文件
/*------ mkdir 命令 ------*/
#include <sys/stat.h>
#include <sys/types.h>
#include <cstddef>
using namespace std; // 命名空间, cout end1 等依赖 std 命名空间
//int cishu=1200;
//int shijian=300;
char DirServer[30]="/datadisk/eisc/server/";
char AnfangDir[99]="anfang";
char logname[20]="eisc_anfang_log.txt";
// 不给长度,系统默认会定义长度,会导致错误,因此需要给长度
char MkdirSh[99]="sudo mkdir -p ";
char ChmodSh[99]="sudo chmod 777 -R ";
//char eiscshuom[50]="this is eisc anfang xitong + - =";
char eiscshuom[50]="#---------- eisc ------------#";
/*---------- 创建所有服务安装文件夹 -----------*/
int log_run()
{
strcat( MkdirSh, DirServer);
strcat( ChmodSh, DirServer);
// 注意:前面定义了变量,需要再函数里面进行赋值追加字符串,否则错误
system(MkdirSh);
system(ChmodSh);
cout << "\n mkdirsh is : " << MkdirSh ;
cout << "\n chmodsh is : " << ChmodSh;
return 0; // 终止函数,并且反馈该函数的值为0; return 0 正常退出,return 1 异常退出 , return -1 函数失败
}
/*---------- 创建安防文件夹 -----------*/
void mkdir_path(char *p_cMkdir)
{
int isCreate = mkdir(p_cMkdir,S_IRUSR | S_IWUSR | S_IXUSR | S_IRWXG | S_IRWXO);
// 创建文件 指定权限
if( !isCreate )
cout << "\n [ok] create AnfangDir:" << p_cMkdir ;
else
cout << "\n [fall] create AnfangDir failed! error code: " << p_cMkdir ;
}
/*---------- 写入日志文件 -----------*/
int W_file()
{
FILE * fp;
fp = fopen (logname, "a+"); // w+ 覆盖并写入 ; a+ 末尾追加字符串
fprintf(fp, "%s %d", eiscshuom, 2023); // 格式化输出流到 fp 指针文件
fclose(fp); // 关闭指针
return(0);
}
/*---------- 读取日志文件 -----------*/
int R_file ( char *lognamea)
{
FILE *fp;
char c;
char buffer[9999];
fp=fopen(lognamea,"r+");
if(!fp)
{
cout << "[fail] 读取文件为空,或者没有读取到文件: ";
cout << "\n 即将退出 R_file 整个函数, 退出效果来源: return -1 \n \n \n ";
return -1;
}
else
{
cout << "\n [ok] fp 指针获取到文件 非 0 非空,值为: " << lognamea;
}
while(1)
{
c=fgetc(fp); // fgetc 从指定流fp 获取下一个字符. 由于循环一次读一个字符。一直读取字符到变量 c
if( feof(fp) ) // feof 判断文件是否结束:测试给定流的文件结束符标识 。 文件读完,就 break 退出循环
{
break;
}
cout << c; // 读取到一个字符,打印一个字符
}
fseek(fp, 5, SEEK_SET); // 查找 文件开头,指针初始化方向开头: 从 文件流 选择第几个字符位置
fread(buffer, strlen(eiscshuom)+5, 1, fp); // 从文件中读取字符串,读取一个元素,长度为 eiscshuom变量的长度
cout << " \n [ok] 变量 c 获取到fp指针流赋值的字符: \n " << "\n 变量 buffer 从 fp 读取元素个数和数量 结果为: " << buffer << "\n \n " ;
// strlen(c)+1 表示统计c 变量的长度还要加1
fclose(fp);
return status; // 终止函数,并且反回该函数的值为 0
}
/*------------ 判断 R_file 函数 -------------*/
int panduan_xuexi(){
int status=0;
if( !R_file(logname))
{
cout << "if 默认成立条件是 非0 非空, 感叹号 ! 是非运算 条件取反,相当于 结果为 是 0 是空 条件成立";
cout << "\n [ok] 函数 R_file 返回的值为0 " ;
}
else
{
cout << "\n [fall] 函数 R_file 返回的值不为0 ";
}
return 0;
}
int main()
{
log_run();
strcat(DirServer, AnfangDir );
strcpy(AnfangDir,DirServer);
cout << "\n AnfangDir 的值为:" << AnfangDir;
cout << "\n 我是main 函数 AnfangDir 接收到值:" << AnfangDir;
mkdir_path(AnfangDir);
W_file();
panduan_xuexi();
return 0;
}
// rm -rf file ; echo "" > file.cpp ; nano file.cpp ; g++ file.cpp -o file ; chmod +x file; ./file
// 软件流程 : 创建安装目录 -> 创建 log.txt 文件 -> 写入eisc -> 开始抓包 -> 等待时间结束抓包 ->读取日志文件 -> 判断 ip 是否大于预设值
/*
#include <stdio.h>
#include <string.h>
int main()
{
FILE *fp;
char buffer[20];
fp = fopen("eisc_anfang_log.txt", "r+");
// fseek(fp, 0, SEEK_SET);
fread(buffer, 3, 1, fp);
printf("%s\n", buffer);
fclose(fp);
return(0);
}
// rm -rf cs ; echo "" > cs.c ; nano cs.c ; gcc cs.c -o cs ; ./cs
*/
Powered by ddoss.cn 12.0
©2015 - 2025 ddoss
渝公网安备50011302222260号
渝ICP备2024035333号
【实验平台安全承诺书】
小绿叶技术社区,优化网络中,点击查看配置信息
主机监控系统: 安全防火墙已开启检查cc攻击-下载文件完成后等待10s 恢复访问,检查连接数低于峰值恢复访问
您的IP:216.73.216.110,2025-12-01 15:25:34,Processed in 0.0175 second(s).