#include #include #include char *str_replace(char *source, char *sub, char *rep) { char *result; char *pc1, *pc2, *pc3; int isource, isub, irep; isub = strlen(sub); irep = strlen(rep); isource = strlen(source); if(NULL == *sub) return strdup(source); result = (char *)malloc(((irep > isub) ? (float)strlen(source)/isub*irep+1:isource)*sizeof(char)); pc1 = result; while(*source != NULL) { pc2 = source; pc3 = sub; while(*pc2 == *pc3 && *pc3 != NULL && *pc2 != NULL) pc2++, pc3++; if(NULL == *pc3) { pc3 = rep; while(*pc3 != NULL) *pc1++ = *pc3++; pc2--; source = pc2; } else *pc1++ = *source; source++; } *pc1 = NULL; return result; } main() { FILE *fp; char buf[128] = ""; char s2[]="<"; char s3[]="<"; char s4[]=">"; char s5[]=">"; printf("Content-type:text/html\n\n"); printf("
\n");
                if(NULL !=(fp=popen("/sbin/ifconfig -a", "r")))
                {
                                while(!feof(fp) && fgets(buf,sizeof(buf),fp))
                                {
                                                printf("%s",str_replace(str_replace(buf,s2,s3),s4,s5));
                                }
                }
                printf("
"); }