因为学校搞了vpn.suda.edu.cn,所以有了很大的发挥余地,于是就写了这个来协助我们免费上网
前提是你的网关要有钱,但是绝对不会用你的一分钱.
以下是源码,需要在Linux下编译之后执行,如书写命令: ./a.out www.baidu.com
就能上网了,编译命令就是gcc X.c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include<unistd.h>
int main(int argc,char *argv[])
{
char *b,*c,*q=NULL;
int n=0,i;
if(argc == 1)
return 1;
n=strlen(argv[1]);
b = (char*)malloc(sizeof(char) * (n + 3));
c = (char*)malloc(sizeof(char) * (n + 40));
for(i=0;i<n;i++)
{
if(argv[1][i]==':')
if(argv[1][i+1]=='/' && argv[1][i+2]=='/')
{
argv[1] += (i + 3);
n -= (i + 3);
}
}
for(i=0;i<n;i++)
if(argv[1][i]=='/')
break;
if(i!=n)
{
n=i;
q=&argv[1][n+1];
argv[1][i]=0;
}
for(i=0;i<n;i++)
{
if(argv[1][i]=='.')argv[1][i]=11;
else if(argv[1][i]<='9')argv[1][i]-='0';
else if(argv[1][i]<='Z')argv[1][i]=argv[1][i]-'A'+12;
else argv[1][i]=argv[1][i]-'a'+38;
}
for(i=0;i<n;i++)
{
b[i] = argv[1][i]+i;
b[i] %= 64;
if(b[i]<=9)b[i]+='0';
else if(b[i]==10)b[i]='-';
else if(b[i]==11)b[i]='.';
else if(b[i]<=38)b[i]=b[i]-12+'A';
else b[i]=b[i]-38+'a';
}
b[i]=0;
c[0]=0;
strcpy(c,"https://vpn.suda.edu.cn/,DanaInfo=.a");
strcat(c,b);
strcat(c,"+");
//printf("%s",c);
if(q!=NULL)strcat(c,q);
free(b);
//free(c);
//puts(c);
n = fork();
if(n == -1)
{
printf("Fork Error!");
return 1;
}
if(n == 0)
{
execlp("x-www-browser","x-www-browser",c,NULL);
}
else
free(c);
return 0;
}