Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z Bramką SMS
Forum PHP.pl > Forum > Gotowe rozwiązania
masset
witam
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;

        }

}
kurtz
Cytat
witam
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
juz chyba raz dostales odpowiedz :)

http://forum.php.pl/viewtopic.php?t=1390&h...highlight=proxy

prosze sprobuj zrobic cos sam - na prawde duzo juz nie trzeba - ale lepiej zebys zrobil to SAM. ;)
GeoS
Zawsze myslalem, ze na plusa lepiej wysylac przez alias emailowy smile.gif
Seth
Szczerze mowiac mam podobny problem ale nie zabardzo rozumiem kurtz o co Ci chodzi ? tzn jak chcesz ominac ta blokade ?
Czy chodzi o podanie przekierowania do hosta proxy wraz z adresem bramki ?
masset
sam bym to chetnie zrobil, lecz nie wiem w jaki sposob dodac adres proxy.
Wystarczy podac przyklad, reszte zrobie sam.
kurtz
seth & masset: przepraszam wydawalo mi sie ze zmiana powyzszego skryptu jest trywialan a tu widze zonk :)
nikt nie wiedzial? ;))

teoria: laczysz sie tak jak dotyczhas tylko jak adres hosta podajesz adres proxy i analogicznie z portem. w zapytaniu o strone (GET czy tam POST) podajesz pelna sciezke do pobieranego dokumentu. i to wszystko :)

skoro byly niejasnosci stworzylem proste demo:
http://work.jukowski.com/proxy_przyklad.php

zapraszam (w razie pytan tez ;)
Seth
dzieki, szczerze mowiac myslalem,ze chodzi Ci zupelnie o co innego tongue.gif

Jeszcze dodam od siebie, adresy proxy:
http://www2.multiproxy.org/all_list.htm
masset
Dzięki za pomoc.
smile.gif
masset
mam jeszcze jeden problem, a mianowicie, w jaki sposob wskazac aby prozy łączyło sie do strony powiecmy przez port 8900 questionmark.gif
pozdrawiam
kurtz
Cytat
mam jeszcze jeden problem, a mianowicie, w jaki sposob wskazac aby prozy łączyło sie do strony powiecmy przez port 8900 ??
pelny adres url moze wygladac np tak:

http://login:haslo@www.jakis.server.pl:876...ciezka/plik.asp

to juz powinno rozjasnic troszke. na codzien nie uzywasz ani loginu i hasla ani portu (bo domyslnie jest nim port 80). wiec o tym jak budowac poprawne poprawne URI znajdziesz w rfc http://www.rfc-editor.org :)
Seth
Mam jesze pytanie odnonie banu IP. Czy uzywajac proxy nie dojdzie do tego, ze zbanuja nam proxy ?
GeoS
Seth:

Moga i banuja - np. nasze proxy.chello.pl, gdy ustawisz sobie w GG SMSy sie nie wysylaja (przekroczenie limitu) sad.gif

Dlatego polecam korzystanie z "egzotycznych" dla polskich uzytkownikow serwerow proxy.
Seth
Ale swoja droga jestem ciekaw na ile blokuja takie servery? I jaki jest limit wysylania smsow z jednego IP ?
GeoS
Z tego co slyszalem jakis czas temu, to na 12 h. Co do ilosci, to nie mam pojecia. Cos kolo 20 :?:
Seth
AleJa slyszalem,ze wysylajac 10 razy na dany nr blokuje sie mozliwosc wysylania tylko na ten nr, a jezeli dana osoba(IP) wysle wiecej niz 500 smsow nie zaleznie na jaki nr to wtedy blokowane jest IP. Nie wiem czy tak jest dokladnie ?
GeoS
Jak widac co osoba, to inne informacje aaevil.gif
Seth
Kolejny maly offtopic: to gajcy apropo awatara:
Kod
//Java

...

URL kobieta = new URL("http://przed.nami.com");

URLConnection polaczenie_z_kobieta = kobieta.openConnection();

polaczenie_z_kobieta.setAllowUserInteraction(true);

polaczenie_z_kobieta.setDoOutput(true);

...

out.write("DNA :P");

out.flush();

out.close();

...

biggrin.gif:D:D:D:D
GeoS
heheheh biggrin.gif biggrin.gif
Seth
Nadal nie wiem jaki warunek trzeba spelnic aby operator zabanowal IP :?: Jestem tez ciekaw w jaki sposob zaimplementowac proxy do bramki. Kod kurtza jest rozwiazaniem tylko, ze zastanawiam sie kiedy nalezalo by zmienic proxy: czy wtedy gdy mamy komunikat, ze nie mozezemy juz wysylac wiecej smsow czy np zmieniac proxy co okreslona ilosc smsow. Zastanawiam sie tez po jakim czasie dane IP zostanie odblokowane :?: Czy moze raz zabanowane IP zostaje w takim stanie do konca. Posiadam bardzo duza liste serverow proxy ale w koncu i ona sie skonczy i co dalej ?

Mam nadzieje, ze ktos przedstawi jakies ciekawe rozwiazanie w tej kwestii.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.