Proxy.pl
1. January 2009
I přestože v dnešní době frčí spíš Tor, cgi proxyny nebo pro gurmány přímo placené SOCKy tak veřejné http proxyny mají imho stále své místo. Doba sice pokročila a najít opravdu anonymní proxynu (bez HTTP_X_FORWARDED_FOR a dalších kokotin) je jako hledat jehlu v kupce sena, nicméně na (legální) oblbnutí kdejakých ip limitů poslouží dobře i ty neanonymní.
Druhá věc je, že z toho co se povaluje na netu je funkční jedna proxyna ze sta. Stahovat na ověření polofunkční klikací tools by byla docela kravina tak jsem se jal uplatnit svoje 1337 perl skillz a ukuchtil si skriptík, který si seznamy nasosá sám a nadpřirozenou rychlostí (jako vette mezi Plzní a Prahou) je všechny prozkouší. Kdyby se někomu udělalo z mých brilantních konstrukcí nedejbože zle, může mi novoročně našálovat do komentářů, jak na nový rok tak…
#!/usr/bin/perl -w
use strict;
use warnings;
use threads;
use threads::shared;
use LWP::UserAgent;
# seznam stranek odkud stahnout proxyny, vytahne z nich vsechny, ktere jsou ve tvaru ip.ip.ip.ip:port
use constant SOURCES => (
'http://www.samair.ru/proxy/',
# '...',
);
use constant INFO => 'http://php5.banan.cz/'; # nejaky phpinfo() skript
use constant HOST => qr/13\.37\.13\.37/; # vase ipna
use constant POSITIVE => qr/phpinfo\(\)/; # co by se melo pri spravny odpovedi najit
use constant THREADS => 99; # u me sezere 0.5G pameti
use constant TIMEOUT => 10; # 10s timeout
our @proxies :shared;
# ------------------------------------------------------------
foreach my $proxylist (SOURCES) {
print "[+] Getting proxies ($proxylist) ... ";
my $content = LWP::UserAgent->new->get($proxylist)->content;
print "OK\n";
push(@proxies, $1) while ($content =~ /(\d+\.\d+\.\d+\.\d+:\d+)/mg);
}
print "[+] You have bees flying around your rectum\n";
threads->create(\&check) for(1..THREADS);
$_->join foreach threads->list();
print "[+] Done!\n";
# ------------------------------------------------------------
sub check {
my $proxy = pop(@proxies);
return if !$proxy;
my $id = '['.threads->tid()."]";
my $ua = LWP::UserAgent->new;
$ua->agent('Mozilla/5.0');
$ua->proxy('http', "http://$proxy/");
$ua->timeout(TIMEOUT);
my $response = $ua->get(INFO);
if (!$response->is_success) {
print "$id $proxy \t\t".$response->status_line."\n";
} else {
if($response->content =~ HOST && $response->content =~ POSITIVE) {
print "$id nonanonymous proxy found: $proxy\n";
system("echo $proxy >> proxies-ip");
} elsif($response->content =~ POSITIVE) {
print "$id elite proxy found: $proxy\n";
system("echo $proxy >> proxies-elite");
} else {
print "$id $proxy \t\tbad response\n";
}
}
check() if(@proxies);
}
Snad je to dostatečně intuitivní k pochopení. Trošku kompletnější verze se válí tady.
Je SeznamBot k ničemu (k hovnu) ?
22. December 2007
Řekněme, že spustíte legitimní projekt větších rozměrů, taktak se vejdete do “normy” sitemap.xml (tj. 50k url). Projekt bude v češtině, je vzásadě jedno jestli je na tom kvalitativně dobře či špatně, to pro crawler nehraje roli, ostatně ani nemůže pokud stránku vživotě neviděl. Pustíte do světa pár celkem nevýznamných odkazů jen aby vás binary monkeys našli, splácáte dohromady sitemap a skouknete jestli někde něco nepřebejvá/nechybí, finálně ještě vyplníte formuláře kde to jde. Pak si uvaříte kafe…pustíte porno nebo ještě líp jedno s kamarádkou natočíte. Po pár dnech, řekněme čistě teoreticky po deseti, se mrknete jak si vlastně stojíte vkládajíce velké naděje do seznamu, přec váš superprojekt je výhradně pro české bfu a těm seznam vládne. Jednoduchým skriptíkem pak z logu vyparsujete vše potřebné a to:

Pokud to chcete číselně Googlebot - 1582, morfeo.centrum - 49, Yahoo! Slurp - 15, SeznamBot 3. Nutno podotknout, že je to počet přístupů na jednotlivé stránky nikoliv unikátní. Pokud bychom dělali statistiku indexování unikátních stránek tak s ostatníma to takřka nehne, akorát seznambot končí na jedné stránce a to indexu(!). Co víc, v absolutních číslech ho předběhlo i kvantitativně nepotřebné Centrum s morfeem (o yahoo nemluvě), ach, kam ten svět spěje. Objevilo se vůbec nějaké znatelné zlepšení po nasazení seznambota 2.0 ? Osobně jsem žádnou chválu neslyšel a to už na ní času bylo dost, ale samochvály že “jsme lepší než google” už jsem slyšel dost… a v tomhle desetidenním intermezzu už mi od toho “horšího” googlu začínají chodit první lidi.
ps: pokud by někdo chtěl ten propírač logů ;)
#!/usr/bin/perl
use strict;
my $file = shift;
my %se;
open IN, $file or die $!;
while (<IN>) {
$se{$1}++ if($_ =~ m{((Googlebot|Yahoo\! SmW'6W&G&fV6VG'VҒ֒bbEײ&&G2GG6FVғЧЦ66R⓰РЦf"6'BG6WF'G6WFW2W6RТ&B"G6WEBE#Ч
Tak jsem zase jednou něco naprogramoval
18. November 2007

Prohledávání konstantně se zvětšujících hashů asi není to pravé ořechové :P
Rozpoznání jazyka
29. October 2007
spíše zajímavost pro ty co budou řešit v budoucnu něco podobného - původně jsem si myslel že rozpoznání bude asi ten největší problém kvůli kterému jeden takový projekt strčím k milionu dalším do šuplíku. Jenže, na wikipedii je docela obsáhlý článek o charakteristikách různých jazyků, ze kterých by se nechala jistá pravidla určit. Co mě ale překvapilo víc, perl má dokonce na to modul. No není to svkělé ? Je to skvělé ! :)
Subdomény (apache, .htaccess, awstats, logrotate)
6. July 2007
Každý jen trošku větší web admin jednou narazí na to, že potřebuje udělat vytváření subdomén poněkud více uživatelsky přátelštější. Větší hostingy už to mají povětšinou nastaveno, proto vy co někde pouze hostujete můžete s klidem odejít ostatně možná i ti kteří nemají shell s uživatelem uid 0 :)
Pokračování…
Spamujeme blog.cz…nojo už zas
18. April 2007
Jelikož čas nadešel, venku už je jaro, já mám zase grafomanské choutky.
Pokračování…
Jak se luští captcha
18. April 2007
v první řadě doufám že mi tento článek zajistí nehynoucí slávu, párset zpětných odkazů a několik miliónů na mém bankovním kontě, protože spousta lidí ani pořádně neví jak se hádám 90% captchy luští. Pak se na poměrně odborném serveru (haha) můžeme dočíst velice neodborný článek, který si dokonce odvažuje tvrdit, že způsob který Vám představím nepoužívá nikdo. Minimálně já jsem toho důkazem že ano :) Nebo ještě idiotštější řešení Konečné řešení v boji proti spamu v diskusních fórech.
Pokračování…
