#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include "nwif.h"
#define IF_NAME "ppp0"
char* hosts[] = {
(char*)"ftp.stv.ru",
(char*)"
www.ubuntu.com",
(char*)"
www.ubuntu.ru",
(char*)"
www.qiwi.ru",
(char*)"
www.mozilla.org",
(char*)"
www.yandex.ru",
(char*)"
www.yahoo.com",
(char*)"
www.google.com",
(char*)"
www.msdn.ru",
(char*)"
www.oracle.com",
(char*)"
www.beeline.ru",
(char*)"
www.mts.ru",
(char*)"
www.mobicomk.ru",
(char*)"
www.stavropol.ru",
(char*)"
www.26.ru",
(char*)"
www.1777.ru",
(char*)"
www.casio.com",
(char*)"
www.nokia.ru",
(char*)"
www.kernel.org",
(char*)"
www.usb.org",
(char*)"
www.clonezilla.org",
(char*)"
www.gnome.org",
(char*)"
www.gimp.org",
(char*)"
www.openoffice.org",
(char*)"
www.apple.com",
};
int hostcount = sizeof(hosts)/sizeof(void*);
int hostnum = -1;
void startConnection(){
system("/usr/bin/poff dsl-provider >/dev/null 2> /dev/null");
sleep(10);
system("/usr/bin/pon dsl-provider >/dev/null 2> /dev/null");
sleep(10);
}
int main(int argc, char** argv) {
int res;
int count;
char cmd[64];
while(1){
while(1){
if(ifExist((char*)IF_NAME)){//Интерфейс поднят
count = 0;
do{
hostnum = (hostnum < hostcount-1) ? hostnum+1 : 0;
sprintf(cmd, "ping -c 1 %s >/dev/null 2> /dev/null\0", hosts[hostnum]);
res = system(cmd);
count++;
if(count >=hostcount){//Коннект точно помер
startConnection();
break;
}
}while(res);
}else{
startConnection();
}
if(!res) break;
}
sleep(300);
}
return (EXIT_SUCCESS);
}