dunker

Statistika

Pridružen/a:
23 apr 2007, 23:24
Zadnjič aktiven:
16 nov 2025, 23:16
Prispevki:
Teme:
32 | Vse teme
377
4
1
#198

Vini:

dunker bo pel na Splet Ima Talent :)




Eeej, tole ni še nič potrjeno ... samo, če bo dovolj alkota prej. :)


všeč(0) ni všeč(0) spam(0)
#3

Kar nagnusno, koliko časa se še obrača naš denar, preden nam ga blagovolijo poslat ... tudi pri AdSense se ček za april pošlje šele okrog 27. maja, kar je tudi skoraj 4 tedne "administracije".



Ampak bolje kot v Sloveniji še vedno, ko pač ... ne plačajo. :-\


všeč(0) ni všeč(0) spam(0)
#1

Da bi jim zaznavno obremenil strežnik z enim cronjobom, se ne rabiš sekirat ... je pa seveda mogoče, da imajo implementirano kakšno vrsto zaščite proti takšnemu "harvestanju", npr. omejeno število zahtevkov z istega IPja v nekem časovnem oknu ipd.



Kakorkoli že, po mojih izkušnjah sicer strani nimajo ponavadi nobene zaščite proti "harvestanju", ker se preveč bojijo po nesreči blokirat GoogleBota in podobne živali, ki prav tako neusmiljeno sekajo po serverju, hehe. :)


všeč(1) ni všeč(0) spam(0)
#13

Mhm, dobra ideja. Čeprav gre v bistvu za povsem nekritično skripto, jo bom vseeno zaklenil na IP, zakaj pa ne, ziher je ziher. :)



Hvala vsem še enkrat. :)


všeč(0) ni všeč(0) spam(0)
všeč(0) ni všeč(0) spam(0)
#8

Uh, fantje, po cirka 10 vloženih urah stvar dela.



Na koncu sem opustil vsako PHP "forkanje", ker hudiča preprosto nisem mogel pripravit do delovanja, poskusil sem vsaj 10 variant. Potem pa sem našel rešitev v telih par vrsticah kode:



$query = "GET " . $script_url . " HTTP/1.0\r\n";



$server = substr(strreplace("http://", "", $scripturl), 0, strpos(strreplace("http://", "", $scripturl), "/"));



if (!$fsock[$fsockcounter] = fsockopen($server, 80)) {

throw new Exception("Unable to open socket connection for script {$script
url}, server: {$server}");

}



fputs($fsock[$fsockcounter], $query);

fputs($fsock[$fsock
counter], "Host: {$server}\r\n");

fputs($fsock[$fsock_counter], "\r\n");



streamsetblocking($fsock[$fsockcounter], 0);

stream
settimeout($fsock[$fsockcounter], $this->timeout);



Na ta način server požene skripto prek URLja in takoj pozabi nanjo. Minus je predvsem to, da mora biti ta skripta "navzven odprta", torej dostopna preko URLja. Plus je pa to, hm, da zadeva faking dela.



:)))



Zares najlepša hvala vsem še enkrat, vidim, da vas je dosti pravih maherjev tuki gor!



Anže :)


všeč(2) ni všeč(0) spam(0)
#6

Hm, zdaj sem prišel do tega, da v skripto parent.php vtaknem malo drugače formuliran ukaz, in sicer takole:



exec("/usr/bin/php /home/nekuser/nekamapa/child.php > /dev/null &");



Če sedaj parent.php poženeš prek command line, vse deluje pravilno.



Če pa parent.php poženem preko browserja, se pa zgodi nekaj nadvse čudnega. Stvar ne javi nobene napake, kljub errorreporting(EALL|ESTRICT) in iniset("display_errors", 1), ampak se povsem obesi.



Browser kaže, da se skripta nalaga v nedogled. Če to nalaganje prekinem, ne morem več z browserjem odpret ničesar več na isti domeni, vse se v nedogled nalaga. Če browser zaprem in spet zaženem, potem lahko spet odpiram strani na tej domeni.



Torej, ko parent.php poženem preko browserja, se ta exec() ukaz nekako povsem obesi in se ne odziva več ... Res ne morem ugotovit, v čem je problem.



Anyone???


všeč(0) ni všeč(0) spam(0)
#3

Hvala obema.



Najprej si bom pogledal tisto "standalone preforking whatever", ker glede na izid pri točki 3.) zna biti nekaj narobe s pravicami, in bom poskusil pred klicem te funkcije userja "su"jat kam drugam.



Blackbird, cronjob bi prišel v poštev, ampak ni tko "by the book" rešitev ... predvsem pa potrebujem to, da se "parent.php" res čim hitreje izvede in pokliče "child.php", namesto da cronjob recimo vsake 3 sekunde obremenjuje bazo in gleda, če ga čaka kaj dela.



Imam svoj VPS, ja, tako da bi se načeloma dalo nakonfigurirat vse - če bi znal. Saj pravim, fantje po internetu pravijo, da njim varianta z ">/dev/null 2>&1" deluje, meni pa noče delovat.



Ne gre pa za nobeno leechanje, ampak dejansko za en poskus multithreadinga v PHP, ja. Vem, da PHP nativno multithreadinga ne podpira, hehe - če bi ga, vas ne bi js moril s takimi bednimi težavami.



Ampak v tem specifičnem primeru multithreading nujno potrebujem, in izvest ga moram praktično točno na opisan način.



Tako da, js grem zdele še eni 2 zadevi probat ... če pa ima kdo še kakšno idejo, pa pliz povejte! :)



Anže


všeč(0) ni všeč(0) spam(0)
#

Lep pozdrav vsem skupaj!



Kako ste kaj? Jaz popizdevam nad Linuxom ... :)



Naj opišem situacijo. Recimo, da imam PHP skripto "parent.php" in skripto "child.php". Skripta "child.php" se izvaja 10 minut.



V skripti "parent.php" imam nekaj kode, nato SPROŽIM skripto "child.php", ki naj se v miru izvaja, skripta "parent.php" pa TAKOJ nadaljuje z delom in NE čaka na output skripte "child.php".



V praksi to pomeni, da se skripta "parent.php" izvaja pol sekunde in v tem času pokliče skripto "child.php". Skripta "child.php" pa se potem izvaja svojih 10 minut in opravi vse težaško delo.



A je do tukaj še vse jasno? :)



No, trik je v tem, da sem poskusil že miljon enih opcij.



1.) V skripti "parent.php" sem klical skripto "child.php" z ukazom exec("/usr/bin/php /home/nekuser/nekamapa/child.php >/dev/null 2>&1");. To NI bilo uspešno, "parent.php" je čakal na output in se izvajal 10 minut.



2.) Potem sem poskusil z exec("/usr/bin/php /home/nekuser/nekamapa/child.php&");, ki naj bi skripto pognal v backgroundu. Žal je zgodba povsem enaka.



3.) Nato sem poskusil z pclose(popen("/usr/bin/php /home/nekuser/nekamapa/child.php&", "r"));. Srce je za trenutek vztrepetalo! Stvar dela! Well, not really.



V tem primeru stvar res dela, če "parent.php" poženem iz konzole (SSH - PuTTY), in to povsem pravilno! Če pa jo poženem z obiskom te skripte prek URLja z brskalnikom, pa spet NE dela in se "child.php" sploh ne izvede. V tem primeru se sicer "parent.php" res izvede v sekundi, ampak se "child.php" sploh NE pokliče.



Ima mogoče kdo kakšno idejo, kako bi lahko rešil ta problem? Povsod po netu najdem predloge, da bi stvar z ">/dev/null 2>&1" morala delovati. Ampak na mojem serverju žal ne. Wtf.



Uporabljam ServInt VPS za $89 mesečno. Njihov support je brez moči.



Please help meh. !!! 11 stofakingenajsttisoč !



Anže


všeč(0) ni všeč(0) spam(0)
#134

Vini:

dunker, ni problema, za eno deklico, ki redno hodi na tale naš piknik, vem, da zelo dobro poje. Jo lahko vprašam, če pride tudi letos, pa vaju povežem, prav?




Haha, lahko. Let me know. :)


všeč(0) ni všeč(0) spam(0)