📄 status.c
字号:
/****************************************************************************by grandchips #gcc -c Status.c #gcc Status.o -lpthread -o Status.cgi****************************************************************************/#include<sys/types.h>#include<stdio.h>#include <string.h>#include <pthread.h>#include <unistd.h>#include <stdlib.h>#include <sys/stat.h>#include <fcntl.h>#define PATH "/config/www/"void *rq_ifconfig( ){ if (fork()==0) { int fd; char filename[100]; strcpy(filename,PATH); strcat(filename,"ifconf.txt"); if((fd=open(filename,O_RDWR|O_CREAT|O_TRUNC))<0) fprintf(stderr,"%s ","open file ifconf.txt error"); close(1); dup(fd); if (execl("/sbin/ifconfig","ifconfig","eth0",NULL)<0) perror("error in ifconfig"); close(fd); } }void *rq_route( ){ if (fork()==0) { int fd; char filename[100]; strcpy(filename,PATH); strcat(filename,"route.txt"); if((fd=open(filename,O_RDWR|O_CREAT|O_TRUNC))<0) fprintf(stderr,"%s ","open file route.txt error"); close(1); dup(fd); if (execl("/sbin/route","route","-n",NULL)<0) perror("error in rq_route"); close(fd); } }void *rq_nslookup( ){ // printf("running rq_nslookup\n"); if (fork()==0) { int fd; char filename[100]; strcpy(filename,PATH); strcat(filename,"nslookup.txt"); if((fd=open(filename,O_WRONLY|O_CREAT|O_TRUNC,0600))<0) printf("open file nslookup.txt error"); //printf("rq_nslookup:%d\n",fd); close(1); dup(fd); if (execl("/usr/bin/nslookup","nslookup","server",NULL)<0) perror("error in nslookup"); close(fd); }//child threadelse if (wait(NULL)==-1) printf("wait thread nslookup error!\n"); }/**********************************************************************************/ main(){char mac[20];char ip[20];char mask[20];char gateway[20];char dns[20];char dns1[20];char dns2[20];char buf[160];strcpy(mac,"00:E0:EE:EC:D6:D8");strcpy(ip,"192.168.3.100");strcpy(mask,"255.255.255.0");strcpy(gateway,"192.168.3.1");strcpy(dns,"192.168.3.1#53");strcpy(dns1,"192.168.3.1");strcpy(dns2,"61.235.70.98");pthread_t ip_status;pthread_t gateway_status;pthread_t dns_status;//if(pthread_create(&status,NULL,rq_ifconfig,NULL)!=0) exit(0);if(pthread_create(&ip_status,NULL,rq_ifconfig,NULL)!=0) exit(0);if(pthread_create(&gateway_status,NULL,rq_route,NULL)!=0) exit(0);if(pthread_create(&dns_status,NULL,rq_nslookup,NULL)!=0) exit(0);sleep(1); //open require file FILE *fr; char filename[100]; strcpy(filename,PATH); strcat(filename,"ifconf.txt"); if ((fr= fopen(filename, "rw")) == NULL) { printf("Error in open configure file.\n"); exit(1); };int words;for (words=1;words<20;words++){ if (words==5) fscanf(fr,"%s",mac); else if (words==7) fscanf(fr,"%s",ip); else if (words==9) fscanf(fr,"%s",mask); else fscanf(fr,"%s",buf);} fclose(fr);//open require file strcpy(filename,PATH); strcat(filename,"route.txt"); if ((fr= fopen(filename, "rw")) == NULL) { printf("Error in open route require file.\n"); exit(1); };for (words=1;words<31;words++){ if (words==30) fscanf(fr,"%s",gateway); else fscanf(fr,"%s",buf);} fclose(fr);//open require nslookup file strcpy(filename,PATH); strcat(filename,"nslookup.txt"); if ((fr= fopen(filename, "r")) == NULL) { printf("Error in open nslookup require file.\n"); exit(1); };for (words=1;words<11;words++){ if (words==4) fscanf(fr,"%s",dns); else if (words==10) fscanf(fr,"%s",dns2); else fscanf(fr,"%s",buf);}fclose(fr); int i;for(i=0;i<20;i++){ if (dns[i]!='#') dns1[i]=dns[i]; else {dns1[i]='\0';break; }}for(i=0;i<strlen(dns1);i++){ if (dns1[i]!='.' && (dns1[i]<'0' | dns1[i]>'9') ) {strcpy(dns1,"192.168.1.1");break;}}for(i=0;i<strlen(dns2);i++){ if (dns2[i]!='.' && (dns2[i]<'0' | dns2[i]>'9') ) {strcpy(dns2,"61.235.70.98");break;}}/****************************************************************************************************/printf("Contenttype:text/html\n\n");printf("<html><head>\n");
printf("<title>run status</title>\n");
printf("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n");
printf("<meta http-equiv=\"pragma\" content=\"no-cache\" >\n");
printf("<style>\n");
printf("<!--\n");
printf("body { font-size: 75%; color: #003399; background-color: #FFFFFF; padding-top: 10px; padding-left: 10px; font-family: \"宋体\", \"Times New Roman\"; } \n");
printf("td { font-size: 12px; line-height: 18px; text-decoration: none; }\n");
printf("input.button { font-size: 12px; font-style: normal; font-weight: normal; font-variant: normal; border: 1px solid #183ead; line-height: normal; background-color: #ddddff; color: #000000; height: 18px; } \n");
printf("input.text { font-size: 12px; font-style: normal; line-height: normal; font-weight: normal; font-variant: normal; height: 18px; border: 1px solid #183ead; color: #000000; padding-right: 3px; padding-left: 3px; } \n");
printf("td.title { font-size: 12px; color: #FFFFFF; background-color: #336D2B; height: 24px; }\n");
printf("td.tail { font-size: 12px; height: 25px; }\n");
printf("td.hline { background-color: #FF9933; height: 1px; color: #FF9933; } \n");
printf("td.vline { color: #FF9933; background-color: #FF9933; width: 1px; } \n");
printf(".space { margin-top: 10px; margin-bottom: 10px; }\n");
printf("table { background-color: #CCCCFF; }\n");
printf("select.list { font-size: 12px; font-style: normal; line-height: normal; font-weight: normal; font-variant: normal; height: 18px; color: #000000; border: 1px solid #183ead; }\n");
printf("input.buttonface { font-size: 12px; font-style: normal; font-weight: normal; font-variant: normal; border: 1px solid #183ead; line-height: normal; background-color: #ddddff; color: #000000; height: 18px; } \n");
printf("td.top { font-size: 12px; line-height: 18px; text-decoration: none; vertical-align: top; }\n");
printf("input.textspecial { font-size: 12px; font-style: normal; line-height: normal; font-weight: normal; font-variant: normal; height: 18px; border: 1px solid #183ead; color: #000000; }\n");
printf("-->\n");
printf("</style>\n");
printf("</head>\n");
printf("<body> \n");
printf("<center> \n");
printf(" <form action=\"Status.cgi\" method=\"post\">\n");
printf(" <table width=\"502\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n");
printf(" <tr>\n");
printf(" <td width=\"7\" class=\"title\"><img src=\"../images/arctab.jpg\" width=\"30\" height=\"31\"></td>\n");
printf(" <td width=\"495\" align=\"left\" valign=\"middle\" class=\"title\">运行状态</td>\n");
printf(" </tr>\n");
printf(" <tr>\n");
printf(" <td colspan=\"2\"><table width=\"502\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n");
printf(" <tr>\n");
printf(" <td class=\"vline\" rowspan=\"15\"><br></td>\n");
printf(" <td width=\"500\"><table width=\"400\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" class=\"space\">\n");
printf(" <tr>\n");
printf(" <td>本页显示当前运行状态</td>\n");
printf(" </tr>\n");
printf(" </table>\n");
printf(" <table width=\"400\" border=\"0\" align=\"center\" class=\"space\">\n");
printf(" <tr>\n");
printf(" <td width=\"100\">MAC地址:</td>\n");
printf(" <td width=\"264\">%s</td>\n",mac);
printf(" </tr>\n");printf(" <tr>\n");
printf(" <td width=\"100\">IP 地址:</td>\n");
printf(" <td width=\"264\">%s</td>\n",ip+5);
printf(" </tr>\n");printf(" <tr>\n");
printf(" <td width=\"100\">子网掩码:</td>\n");
printf(" <td width=\"264\">%s</td>\n",mask+5);
printf(" </tr>\n");printf(" <tr>\n");
printf(" <td width=\"100\">网 关:</td>\n");
printf(" <td width=\"264\">%s</td>\n",gateway);
printf(" </tr>\n");printf(" <tr>\n");
printf(" <td width=\"100\">主DNS:</td>\n");
printf(" <td width=\"264\">%s</td>\n",dns1);
printf(" </tr>\n");printf(" <tr>\n");
printf(" <td width=\"100\">备用DNS:</td>\n");
printf(" <td width=\"264\">%s</td>\n",dns2);
printf(" </tr>\n");
printf("\n");
printf(" </table>\n");
printf(" <table width=\"400\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" class=\"space\">\n");
printf(" <tr>\n");
printf(" <td></td>\n");
printf(" </tr>\n");
printf(" </table>\n");
printf(" <td></td>\n");
printf(" <td class=\"vline\" rowspan=\"15\"><br></td>\n");
printf(" </tr>\n");
printf(" <tr>\n");
printf(" <td class=\"hline\"></td>\n");
printf(" </tr>\n");
printf(" <tr>\n");
printf(" <td height=\"30\" class=\"tail\"> \n");
printf(" <input name=\"Save\" type=\"submit\" class=\"button\" id=\"Save\" value=\"刷 新\">\n");
printf(" </td>\n");
printf(" </tr>\n");
printf(" <tr>\n");
printf(" <td class=\"hline\"></td>\n");
printf(" </tr>\n");
printf(" </table></td>\n");
printf(" </tr>\n");
printf(" </table>\n");
printf(" </form>\n");
printf("</center>\n");
printf("\n");
printf("</body>\n");
printf("</html>\n");fflush(stdout);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -