mam pewien problem, a mianowicie ip mojego servera dostalo bana u ery i plusa
czy mogli byscie napisac jak przerobic ponizsze funckje tak aby przy wysylanie kozystaly one za
kazdym razem z innego proxy( pobierane z pliku postaci
adres:port
adres2:port
po kolei, gdy gdy skonczą sie adresy, skrypt przechodzi do poczatku)
i chodziło by jeszcze o to , ze jezeli proxy nie odpowie w ciagu poiwecmy 5 s to
skrypt przechodzi do kolejnego proxy i powtaza prube wyslania
Kod
## Funkcja dla Ery
function send_era ($numer,$tekst,$podpis) {
$fp=fsockopen("boa.eragsm.com.pl",80,&$errno,&$errstr,3); //timeout=3s
if (!$fp) {
debug ("PROBLEM Z POLACZENIEM: $errno - $errstr");
return 0;
} else {
fputs($fp,"GET /sms/sendsms.asp?sms=1 HTTP/1.0nn"); //wysylanie
fgets($fp,128);fgets($fp,128);fgets($fp,128);fgets($fp,128);
fgets($fp,128);fgets($fp,128);fgets($fp,128);fgets($fp,128);
$tmp=fgets($fp,128); //linia DZIEWIATA
$tmp=explode(" ",$tmp);
$cookie=substr($tmp[1],0,-1); //wartosc COOKIE
debug ("cookie: $cookie");
$tmp=fread($fp,12000); // pobranie strony
$tmp=strstr ($tmp,"name="Code" value="");
$tmp=explode("rn",$tmp);
debug ("Linia z kodem: $tmp[0]");
$code=substr($tmp[0],19,-3); //wartosc CODE
debug ("Code: $code");
fclose($fp);
#powtorne polaczenie w celu wyslania
$fp=fsockopen("boa.eragsm.com.pl",80,&$errno,&$errstr,3); //timeout=3s
if (!$fp) {
debug ("PROBLEM Z POLACZENIEM : $errno - $errstr");
return 0;
} else {
$rozmiar_tekstu=strlen($tekst);
$rozmiar_podpisu=strlen($podpis);
if ($rozmiar_tekstu+$rozmiar_podpisu>125) { // limit 125
znakow
$tekst=substr($tekst, 0, 125-$rozmiar_podpisu-3);
$tekst=$tekst."...";
}
$tekst=znaki_spec($tekst);
$podpis=znaki_spec($podpis);
$post="bookopen=&numer=$numer&ksiazka=&message=$tekst&podpis=$podpis&kontakt=&code=$code&Nadaj=Nadaj";
$size=strlen($post);
debug ("Wysylam pakiet: $post");
debug ("Wielkosc pakietu: $size");
fputs($fp,"POST /sms/sendsms.asp HTTP/1.0nCookie:
$cookienContent-type: application/x-www-form-urlen
codednContent-length: $sizenn$postn");
$tmp=fread($fp,6500); // pobranie strony po wyslaniu
if (strpos($tmp, "11 wiadomo")) $status=1;
if (strpos($tmp, "Na ten numer GSM wys")) $status=2;
fclose($fp);
}
debug("Status: $status");
return $status;
}
}
## Funkcja dla Plus'a
function send_plus ($numer,$tekst,$podpis) {
$fp=fsockopen("www.text.plusgsm.pl",80,&$errno,&$errstr,3); //timeout=3s
if (!$fp) {
debug ("PROBLEM Z POLACZENIEM: $errno - $errstr");
return 0;
} else {
$rozmiar_tekstu=strlen($tekst);
$rozmiar_podpisu=strlen($podpis);
if ($rozmiar_tekstu+$rozmiar_podpisu>617) { // limit 617 znakow
$tekst=substr($tekst, 0, 617-$rozmiar_podpisu-3);
$tekst=$tekst."...";
}
$n_pfx = substr($numer, 0, 3);
$n_num = substr($numer, 3, 6);
$tekst=znaki_spec($tekst);
$podpis=znaki_spec($podpis);
$post="tprefix=$n_pfx&numer=$n_num&odkogo=$podpis&tekst=$tekst";
$size=strlen($post);
debug ("Wysylam pakiet: $post");
debug ("Wielkosc pakietu: $size");
fputs($fp,"POST /sms/sendsms.php HTTP/1.0nContent-type:
application/x-www-form-urlencodednContent-length: $s
izenn$postn");
$tmp=fread($fp,6500); // pobranie strony po wyslaniu
if (strpos($tmp, "SMS zosta")) $status=1;
if (strpos($tmp, "SMS nie zosta")) $status=2;
fclose($fp);
debug("Status: $status");
return $status;
}
}
function send_era ($numer,$tekst,$podpis) {
$fp=fsockopen("boa.eragsm.com.pl",80,&$errno,&$errstr,3); //timeout=3s
if (!$fp) {
debug ("PROBLEM Z POLACZENIEM: $errno - $errstr");
return 0;
} else {
fputs($fp,"GET /sms/sendsms.asp?sms=1 HTTP/1.0nn"); //wysylanie
fgets($fp,128);fgets($fp,128);fgets($fp,128);fgets($fp,128);
fgets($fp,128);fgets($fp,128);fgets($fp,128);fgets($fp,128);
$tmp=fgets($fp,128); //linia DZIEWIATA
$tmp=explode(" ",$tmp);
$cookie=substr($tmp[1],0,-1); //wartosc COOKIE
debug ("cookie: $cookie");
$tmp=fread($fp,12000); // pobranie strony
$tmp=strstr ($tmp,"name="Code" value="");
$tmp=explode("rn",$tmp);
debug ("Linia z kodem: $tmp[0]");
$code=substr($tmp[0],19,-3); //wartosc CODE
debug ("Code: $code");
fclose($fp);
#powtorne polaczenie w celu wyslania
$fp=fsockopen("boa.eragsm.com.pl",80,&$errno,&$errstr,3); //timeout=3s
if (!$fp) {
debug ("PROBLEM Z POLACZENIEM : $errno - $errstr");
return 0;
} else {
$rozmiar_tekstu=strlen($tekst);
$rozmiar_podpisu=strlen($podpis);
if ($rozmiar_tekstu+$rozmiar_podpisu>125) { // limit 125
znakow
$tekst=substr($tekst, 0, 125-$rozmiar_podpisu-3);
$tekst=$tekst."...";
}
$tekst=znaki_spec($tekst);
$podpis=znaki_spec($podpis);
$post="bookopen=&numer=$numer&ksiazka=&message=$tekst&podpis=$podpis&kontakt=&code=$code&Nadaj=Nadaj";
$size=strlen($post);
debug ("Wysylam pakiet: $post");
debug ("Wielkosc pakietu: $size");
fputs($fp,"POST /sms/sendsms.asp HTTP/1.0nCookie:
$cookienContent-type: application/x-www-form-urlen
codednContent-length: $sizenn$postn");
$tmp=fread($fp,6500); // pobranie strony po wyslaniu
if (strpos($tmp, "11 wiadomo")) $status=1;
if (strpos($tmp, "Na ten numer GSM wys")) $status=2;
fclose($fp);
}
debug("Status: $status");
return $status;
}
}
## Funkcja dla Plus'a
function send_plus ($numer,$tekst,$podpis) {
$fp=fsockopen("www.text.plusgsm.pl",80,&$errno,&$errstr,3); //timeout=3s
if (!$fp) {
debug ("PROBLEM Z POLACZENIEM: $errno - $errstr");
return 0;
} else {
$rozmiar_tekstu=strlen($tekst);
$rozmiar_podpisu=strlen($podpis);
if ($rozmiar_tekstu+$rozmiar_podpisu>617) { // limit 617 znakow
$tekst=substr($tekst, 0, 617-$rozmiar_podpisu-3);
$tekst=$tekst."...";
}
$n_pfx = substr($numer, 0, 3);
$n_num = substr($numer, 3, 6);
$tekst=znaki_spec($tekst);
$podpis=znaki_spec($podpis);
$post="tprefix=$n_pfx&numer=$n_num&odkogo=$podpis&tekst=$tekst";
$size=strlen($post);
debug ("Wysylam pakiet: $post");
debug ("Wielkosc pakietu: $size");
fputs($fp,"POST /sms/sendsms.php HTTP/1.0nContent-type:
application/x-www-form-urlencodednContent-length: $s
izenn$postn");
$tmp=fread($fp,6500); // pobranie strony po wyslaniu
if (strpos($tmp, "SMS zosta")) $status=1;
if (strpos($tmp, "SMS nie zosta")) $status=2;
fclose($fp);
debug("Status: $status");
return $status;
}
}