• [Perl] Mysql Manager

 #483964  por Doddy
 17 Feb 2016, 15:53
Un simple mysql manager en Perl.
#!usr/bin/perl 
#Mysql Manager (C) Doddy Hackman 2011
#ppm install http://www.bribes.org/perl/ppm/DBI.ppd

use DBI;

sub head {
print "\n\n -- == Mysql Manager == --\n\n";
}

sub copyright {
print "\n\n-- == (C) Doddy Hackman 2011 == --\n\n";
exit(1);
}

sub sintax {
print "\n[+] Sintax : $0 <host> <user> <pass>\n";
} 

head();
unless (@ARGV > 2) {
sintax();
} else {
enter($ARGV[0],$ARGV[1],$ARGV[2]);
}
copyright();

sub enter {

print "\n[+] Connecting to the server\n";

$info = "dbi:mysql::".$_[0].":3306";
if (my $enter = DBI->connect($info,$_[1],$_[2],{PrintError=>0})) {

print "\n[+] Enter in the database";

while(1) {
print "\n\n\n[+] Query : ";
chomp(my $ac = <stdin>);

if ($ac eq "exit") {
$enter->disconnect;
print "\n\n[+] Closing connection\n\n";
copyright();
}

$re = $enter->prepare($ac);
$re->execute();
my $total = $re->rows();

my @columnas = @{$re->{NAME}};

if ($total eq "-1") {
print "\n\n[-] Query Error\n";
next;
} else {
print "\n\n[+] Result of the query\n";
if ($total eq 0) {
print "\n\n[+] Not rows returned\n\n";
} else {
print "\n\n[+] Rows returned : ".$total."\n\n\n";
for(@columnas) {
print $_."\t\t";
}
print "\n\n";
while (@row = $re->fetchrow_array) {
for(@row) {
print $_."\t\t";
}
print "\n";
}}}}
} else {
print "\n[-] Error connecting\n";
}}

# ¿ The End ?
Un ejemplo de uso
C:\Documents and Settings\Administrador\Escritorio\Todo\Warfactory II\proyectos\
mysqlman>manager.PL localhost root ""


 -- == Mysql Manager == --


[+] Connecting to the server

[+] Enter in the database


[+] Query : show databases


[+] Result of the query


[+] Rows returned : 6


Database

information_schema
cdcol
hackman
mysql
phpmyadmin
test



[+] Query : exit


[+] Closing connection



-- == (C) Doddy Hackman 2011 == --