Visualizzazione post con etichetta Perl. Mostra tutti i post
Visualizzazione post con etichetta Perl. Mostra tutti i post

sabato 23 agosto 2008

[Perl] YouTube-Video-Downloader

Descrizione
Dato un url di un video di YouTube, scarica detto video sul proprio pc.

Codice
use
LWP;
use Term::ReadKey;
use Term::ANSIColor;
use Win32::Console::ANSI;
&video;
sub video{
print color 'bold red';
print "[!]Inserisci l'url del video da scaricare da YouTube: ";
print color 'reset';
chomp($url=<>);
if($url=~m/(http:\/\/.*?youtube\.com)\/.*?v=(.+)/){
$you= $1;
$code=$2;}
else{
print color "bold red";
print "[!]Non hai immesso un valido indirizzo...\n[!]Riprovare? (y/n)\n";
print color "reset";
chomp($a=<>);
while(1==1){
if($a eq 'y'){
&video; }
elsif($a eq 'n'){
print color "bold red";
print "[!]Alla prossima!\n[!]Premi un tasto per uscire...\n";
print color "reset";
while(not defined ($key = ReadKey(-1))){ }
exit;}else{
print color "bold red";
print "[!]Non hai immesso una valida risposta!\n[!]Riprovare? (y/n)\n";
print color "reset";
chomp($a = <>);}}}
$lwp = LWP::UserAgent->new;
$get = $lwp->get("$you/v/$code")->request->uri;
$get =~ s/.*&t=(.+)/$1/;
open(F,">$code.flv");
binmode(F);
$t1=$t2=time;
print color "bold blue";
print "\n[*]Scaricamento in corso...\n";
print color "reset";
$req = $lwp->request(HTTP::Request->new(
GET => "$you/get_video?video_id=$code&t=$get"),
sub {
(
$part,$req) = @_;
$part2 = $part2 + length($part);
$time2 = time;
if($time2 > $time1){
if ($req->content_length) {
$leng = $req->content_length;
$ctr = 100*$part2/$leng;
print color "bold green";
printf STDERR "\r[*]%d%%",$ctr;
print color "reset";
$time1= $time2;}}
print F $part;});
close(F);
print color "bold green";
print "\r[!] 100% - File scaricato con successo!\n";
print color "reset";
print color "bold red";
print "[!]Vuoi scaricare un nuovo video? (y/n)\n";
print color "reset";
chomp($a=<>);
while(1==1){
if($a eq 'y'){
&video;}
elsif($a eq 'n'){
print color "bold red";
print "[!]Alla prossima!\n[!]Premi un tasto per uscire...\n";
print color "reset";
while(not defined ($key = ReadKey(-1))){}
exit;}else{
print color "bold red";
print "[!]Non hai immesso una valida risposta!\n[!]Vuoi scaricare un nuovo video? (y/n)\n";
print color "reset";
chomp($a = <>);}}}

lunedì 18 agosto 2008

[Perl] BidVertiserChecker

Descrizione
Controlla le entrate su BidVertiser.

Codice
use WWW::Mechanize;
my $mech = WWW::Mechanize->new( autocheck => 1 );
use Win32::Console::ANSI;
print "\e[1;37;44mBidVertiser\n\e[0m";
$mech->get('http://www.bidvertiser.com/');
$mech->submit_form(
form_name => 'LoginFormAdv',
fields => {
bdv_type => 'pbl',
Member_ID => 'username',
Password => 'password',
},
);

$a = $mech->content;
if($a =~ /<td width=\"160\" class=\"Top-Bar-Bttn-TD\" align=\"center\" onclick=\"document.location.href=\'(.*?)\';\" style=\"cursor:pointer;\"><span class=\"Top-Bar-Bttn\" >BidVertiser Summary<\/span><\/td>/){
$mech->get($1);
}
$a = $mech->content;
if($a=~/<b>Total<\/b><\/td>\s*?<td><b>(.*?)<\/b><\/td>\s*?<td><b>(.*?)<\/b><\/td>\s*?<td><b>(.*?)<\/b><\/td>\s*?<td><b>(.*?)<\/b>/){
print "Impressions: $1\nClicks: $2\nRevenue: $3\nCPC: $4\n\n";
}
system("PAUSE");

domenica 17 agosto 2008

[Perl] GUI-HelloWorld

Descrizione
Semplice esempio di GUI.

Codice
use Tk;
my $mw = new MainWindow;
my $label = $mw -> Label(-text=>"Hello World") -> pack();
my $button = $mw -> Button(-text => "Esci",
-command => sub { exit })
-> pack();
MainLoop;

sabato 16 agosto 2008

[Perl] WhoIs

Descrizione
Semplice esempio di WhoIs in Perl.

Codice
use Net::Whois::Raw;
$s = whois('google.com');
print $s;
system("PAUSE");

venerdì 15 agosto 2008

[Perl] ShowTextFiles

Descrizione
Mostra i nomi dei file di testo presenti in una directory.

Codice
$d = ".";
print "File di testo trovati:\n";
opendir(D, $d) or die "Impossibile aprire la directory: $!";
while( defined ($f=readdir(D)) ) {
print "$d/$f\n" if -T "$d/$f";
}
closedir(D);
system("PAUSE");

giovedì 14 agosto 2008

[Perl] PalindromStrings

Descrizione
Controlla se una stringa è palindroma.

Codice
$str = 'asdDsa';
$rev = join("", reverse split("", $str));
if($str =~ /$rev/i){
print "La stringa '$str' e' palindroma\n";
}
else
{
print "La stringa '$str' non e' palindroma\n";
}
system("pause");

mercoledì 13 agosto 2008

[Perl] Password

Descrizione
Non visualizza ciò che viene digitato durante l'immissione del valore della variabile $pass.

Codice
use Term::ReadKey;
ReadMode('noecho');
print "Inserire una password: ";
$pass = ReadLine(0);
chomp(
$pass);
print "\nLa password digitata e': $pass\n";
system("pause");

martedì 12 agosto 2008

[Perl] RomanArabic

Descrizione
Mostra il corrispondente numero romano di un numero arabo e viceversa.

Codice
use Roman;
$roman = roman(5);
print "Il corrispondente numero romano del numero arabo 5 e' $roman\n";
$arabic = arabic($roman);
print "Viceversa, il corrispondente numero arabo del numero romano $roman e' $arabic\n";
system("pause");

lunedì 11 agosto 2008

[Perl] Ping

Descrizione
Pinga un host.

Codice
use Net::Ping;
$host = "v3rgil.altervista.org";
$p = Net::Ping->new() or die "Impossibile pingare: $!\n";
print "$host is alive\n" if $p->ping($host);
$p->close;
system("pause");

domenica 10 agosto 2008

[Perl] Randomizing An Array

Descrizione
Randomizza un dato array.

Codice
my @arr = ("Napoli", "Milano", "Londra", "New York");
my $deck = \@arr;
my $i = @$deck;
while ($i--) {
my $j = int rand (4);
@$deck[$i,$j] = @$deck[$j,$i];
}
print "@arr\n";
system("pause");

sabato 9 agosto 2008

[Perl] FtpAccess

Descrizione
Banale esempio dell'uso del FTP con il Perl.

Codice
use Net::FTP;
$ftp = Net::FTP->new("tuosito.org") or die "Impossibile connettersi: $@\n";
$ftp->login('user', 'pass') or die "Impossibile loggarsi\n";
$ftp->put("file.txt");
system("pause");

venerdì 8 agosto 2008

[Perl] GetTinyURL

Descrizione
Ottiene il TinyURL di un dato indirizzo web.

Codice
use WWW::Mechanize;
my $mech = WWW::Mechanize->new( autocheck => 1 );
$mech->get( 'http://tinyurl.com/');
$var=$mech->content;
$mech->submit_form(
form_number => 2,
fields => {
url => 'http://tuosito.com',
}
);

$var=$mech->content;
if ($var=~m/<blockquote><b>.*?<\/b><br><small>\[<a href=\"(.*?)\" target=.*?>Open in new window<\/a>\]<\/small>/g){
print "\n Il TinyURL generato e': $1";
}
print "\n\n\n";
system("PAUSE");

giovedì 7 agosto 2008

[Perl] AdSenseChecker

Descrizione
Controlla le entrate su AdSense.

Leggenda
*
Riga troncata.

Codice
use WWW::Mechanize;
my $mech = WWW::Mechanize->new( autocheck => 1 );
print "Adsense\n";
$mech->get( 'https://www.google.com/accounts/Login?continue=http://www.google.it/search%3Fhl%3Dit%26client%3Dfirefox-a%26channel%3Ds%26rls%3Dorg.mozilla:it:official%26hs%3DN7p%26pwst *
%3D1%26q%3 *
Dadsense%2Bchecker%2Bsource%26start%3D10%26sa%3DN&hl=it');
$var=$mech->content;
$mech->submit_form(
form_number => 1,
fields => {
Email => 'tuaemail',
Passwd => 'tuapass',
}
);

$var2=$mech->content;
$mech->get('https://www.google.com/accounts/ServiceLoginBox?service=adsense&ltmpl=login&ifr=true&rm=hide&fpui=3&nui=15&alwf=true&passive=true&continue=https%3A%2F%2Fwww.google.com%2Fadsense%2Flogin-box-gaiaauth&followup=https%3A%2F%2Fwww.google.com%2Fadsense%2Flogin-box-gaiaauth&hl=it');
$var5=$mech->content;
if ($var5 =~ m/<center><a target="_top" href="(.*)" style="font-family: Arial, Helvetica, sans-serif; font-size: smaller;">/g){
$mech->get("$1");
$var3=$mech->content;
}
while($var3=~ m/<td nowrap valign="top" style="text-align:right" class="">(.*?)<\/td>.*?<td nowrap valign="top" style="text-align:right" class="">(.*?)<\/td>.*?<td nowrap valign="top" style="text-align:right" class="">(.*?)<\/td>.*?<td nowrap valign="top" style="text-align:right" class="">(.*?)<\/td>.*?<td nowrap valign="top" style="text-align:right" class="">(.*?)<\/td>/g){
print "Oggi\n";
print "Impressioni su pagina: $1\nClick: $2\nCTR della pagina: $3\nPagina eCPM: $4\nEntrate: $5";
$mech->get("https://www.google.com/adsense/report/overview?timePeriod=alltime");
$vari = $mech->content;
while($vari=~ m/<td nowrap valign="top" style="text-align:right" class="">(.*?)<\/td>.*?<td nowrap valign="top" style="text-align:right" class="">(.*?)<\/td>.*?<td nowrap valign="top" style="text-align:right" class="">(.*?)<\/td>.*?<td nowrap valign="top" style="text-align:right" class="">(.*?)<\/td>.*?<td nowrap valign="top" style="text-align:right" class="">(.*?)<\/td>/g){
print "\n\nTotale\n";
print "Impressioni su pagina: $1\nClick: $2\nCTR della pagina: $3\nPagina eCPM: $4\nEntrate: $5\n";
}
}
system("pause");

mercoledì 6 agosto 2008

[Perl] RenFile

Descrizione
Rinomina un file (in questo caso rinomina renfile.pl in hello.pl).

Codice
$file="renfile.pl";
my $newname = "hello.pl";
rename($file, $newname) or
warn "Impossibile rinominare $file in $newname: $!\n";
system("pause");

lunedì 4 agosto 2008

[Perl] Controllare l'esistenza di un file

Descrizione
Il titolo dice tutto ;): lo script che oggi vi presento rappresenta un banale esempio di come si possa controllare l'esistenza di un file (in questo caso denominato new.txt) con il Perl.

Codice
if (-e "new.txt"){
print "Il file \"new.txt\" esiste.";
}
else{
print "Il file \"new.txt\" non esiste.\n";
}
system("PAUSE");

sabato 2 agosto 2008

[Perl] All AiV3's stats

Descrizione
Il sottostante script, da me sempre realizzato in Perl, mostra alcune delle statistiche pubbliche di AiV3, AiV3 on Altervista ed AiV3 on Blogger.

Codice
use WWW::Mechanize;
my $mech = WWW::Mechanize->new( autocheck => 1 );
use Win32::Console::ANSI;
system(“title All AiV3’s stats”);
print “\e[1;37;44mAiV3 on Altervista\n\e[0m”;
$mech->get( ‘http://v3rgil.altervista.org/wordpress/’);
$var=$mech->content;
if($var=~m/<ul><li><b>Visite di oggi:<\/b>(.*?)<\/li>\s\s<li><b>Visite totali:<\/b>(.*?)<\/li>\s\s<li><b>Visite totali per questa pagina:<\/b>(.*?)<\/li>\s\s<li><b>Ip:<\/b>(.*?)<\/li>\s\s<li><b>Os:<\/b> <\/li>\s\s<li><b>Browser:<\/b> <\/li>\s\s<li><b>Visitatori online:<\/b>(.*?)<\/li>\s\s<li><b>Utenti online:<\/b>(.*?)<\/li>\s\s<br>\s\s<li><b>Top browser:<\/b> <br>\s\s(.*?)<\/li>\s\s<br>\s\s<li><b>Top O.S.:<\/b> <br>\s\s(.*?)<\/li>/)
{
print qq(Visite di oggi: $1
Visite totali: $2
Visite totali per questa pagina: $3
Ip: $4
Visitatori online: $5
Utenti online: $6
Top browser: $7
Top O.S.: $8);
}
print “\n\n\e[1;37;44mAiV3\n\e[0m”;
$mech->get( ‘http://aiv3.no-ip.org/wordpress/’);
$var=$mech->content;
if($var=~m/<ul><li><b>Visite di oggi:<\/b>(.*?)<\/li>\s\s<li><b>Visite totali:<\/b>(.*?)<\/li>\s\s<li><b>Visite totali per questa pagina:<\/b>(.*?)<\/li>\s\s<li><b>Ip:<\/b>(.*?)<\/li>\s\s<li><b>Os:<\/b> <\/li>\s\s<li><b>Browser:<\/b> <\/li>\s\s<li><b>Visitatori online:<\/b>(.*?)<\/li>\s\s<li><b>Utenti online:<\/b>(.*?)<\/li>\s\s<br>\s\s<li><b>Top browser:<\/b> <br>\s\s(.*?)<\/li>\s\s<br>\s\s<li><b>Top O.S.:<\/b> <br>\s\s(.*?)<\/li>/)
{
print qq(Visite di oggi: $1
Visite totali: $2
Visite totali per questa pagina: $3
Ip: $4
Visitatori online: $5
Utenti online: $6
Top browser: $7
Top O.S.: $8);
}
print “\n\n\e[1;37;44mAiV3 on Blogger\n\e[0m”;
$mech->get( ‘http://s5.shinystat.com/cgi-bin/shinystatv.cgi?L=0&USER=V3rgil&NH=1&NRD=1′);
$var=$mech->content;
if($var=~m/<td class=titolobox width=25%>Visitatori online<\/td>\s.*?<td.*?>(.*?)<\/td>/){
print “Visitatori online: $1″;
}
if($var=~m/<td.*?>Totale pagine viste<\/td>\s+.*?<td.*?>(.*?)<\//){
print “\nTotale pagine visitate: $1″;
}
if($var=~m/<td.*?>Visite totali<\/td>\s+.*?<td.*?>(.*?)<\//){
print “\nVisite totali: $1″;
}
if($var=~m/<\/a>Pagine viste<\/td>\s+.*?<td.*?>(.*?)<\/td>/){
print “\nPagine viste (oggi): $1″;
}
if($var=~m/<\/a>Visite<\/td>\s+.*?<td.*?>(.*?)<\/td>/){
print “\nVisite di oggi: $1″;
}
if($var=~m/Rank.*?><\/a><\/td>\s+.*?<td.*?><b>(.*?)<\/b>/){
print “\nShinystat Rank: $1 su 50″;
}
print “\n\n\n”;
system(“pause”);

venerdì 1 agosto 2008

[Perl] Data ed ora

Descrizione
Il sottostante script, da me realizzato in Perl, visualizza l’ora e la data.

Codice
use Time::Local;
my $tim = localtime(time);
print $tim;

lunedì 21 luglio 2008

[Perl] Elevamento a potenza senza ricorrere all’operatore predefinito

Descrizione
Il codice sottostante esegue l’elevamento a potenza (a scelta dell’utente) di un numero (sempre a scelta dell’utente) senza ricorrere all’operatore predefinito di elevamento a potenza del Perl (**).

Codice
print “Inserisci un numero\n”;
chomp($a=);
print “\nA che potenza lo vuoi elevare?\n”;
chomp($b=);
if($b==1){
print “\n$a\n”;
}
elsif($b==0){
print “\n1\n”;
}
else{
$e=$a;
for($c=1;$c<$b;$c++){ $f=$e*$a; $e=$f; } } print “\n$f\n”; system(”PAUSE”);