Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - isseu

#1
GNU/Linux / Problema pendrive
13 Abril 2013, 23:39 PM
Un amigo me trajo un pendrive USB 3.0, 64 GB :o. Sucede que lo conecto y no lo monta. Para mi amigo es muy importante recuperar los archivos ... Intente varias cosas en internet pero nose que hacer. Lo conecte a linux y intente un par de cosas.
Pongo un poco de información:

Citar~$ dmesg
[  291.029707] usb 2-1.1: new high-speed USB device number 7 using ehci_hcd
[  291.138884] usb 2-1.1: New USB device found, idVendor=1516, idProduct=6221
[  291.138893] usb 2-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  291.138899] usb 2-1.1: Product: USB Drive
[  291.138904] usb 2-1.1: Manufacturer: SKYMEDI
[  291.139680] scsi7 : usb-storage 2-1.1:1.0
[  292.136385] scsi 7:0:0:0: Direct-Access     SKYMEDI  USB Drive        1.00 PQ: 0 ANSI: 6
[  292.138018] sd 7:0:0:0: Attached scsi generic sg2 type 0
[  292.140805] sd 7:0:0:0: [sdb] Attached SCSI removable disk
[  381.243485] usb 2-1.1: USB disconnect, device number 7
[  393.699047] usb 2-1.1: new high-speed USB device number 8 using ehci_hcd
[  393.808768] usb 2-1.1: New USB device found, idVendor=1516, idProduct=6221
[  393.808776] usb 2-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  393.808780] usb 2-1.1: Product: USB Drive
[  393.808783] usb 2-1.1: Manufacturer: SKYMEDI
[  393.809416] scsi8 : usb-storage 2-1.1:1.0
[  394.806134] scsi 8:0:0:0: Direct-Access     SKYMEDI  USB Drive        1.00 PQ: 0 ANSI: 6
[  394.807812] sd 8:0:0:0: Attached scsi generic sg2 type 0
[  394.811736] sd 8:0:0:0: [sdb] Attached SCSI removable disk

Trate de montar /dev/sdb pero me dice que no encuentra el dispositivo (¿?). Use el programa "Discos" de ubuntu, y me muestra el pendrive pero no me da ninguna acción a realizar. No aparece en los dispositivos montados pero cuando lo conecta al notebook este suena, reconociendo el nuevo dispositivo .... Intente realizar esta guia pero como no esta montado no puedo hacer mucho..

Gracias de antemano :)


#2
Hace tiempo no ocupaba mi notebook (ultimo Ubuntu con Gnome 3), lo inicio y me conecto a la red wifi de mi casa sin problemas, instalo actualizaciones y todo perfecto. Al otro dia lo prendo y no logro conectarme a mi wifi. La clave esta correcta, logro conectarme a otros wifi y otros equipos si pueden conectarse a mi wifi. Parece ser que el unico problema es de Mi notebook con Mi wifi, demora mucho y manda un mensaje que no pudo conectarse. No encontré nada raro en la configuración del router, procedí a ver el log de network manager --> /var/log/syslog
Encontré esto...

CitarMar  3 18:18:41 multivac dhclient: DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 10
Mar  3 18:18:43 multivac NetworkManager[945]: <warn> (eth1): DHCPv4 request timed out.
Mar  3 18:18:43 multivac NetworkManager[945]: <info> (eth1): canceled DHCP transaction, DHCP client pid 11966
Mar  3 18:18:43 multivac NetworkManager[945]: <info> Activation (eth1) Stage 4 of 5 (IPv4 Configure Timeout) scheduled...
Mar  3 18:18:43 multivac NetworkManager[945]: <info> Activation (eth1) Stage 4 of 5 (IPv4 Configure Timeout) started...
Mar  3 18:18:43 multivac NetworkManager[945]: <info> (eth1): device state change: ip-config -> failed (reason 'ip-config-unavailable') [70 120 5]
Mar  3 18:18:43 multivac NetworkManager[945]: <warn> Activation (eth1) failed for access point (Wi-fi Correa)
Mar  3 18:18:43 multivac NetworkManager[945]: <warn> Activation (eth1) failed.
Mar  3 18:18:43 multivac NetworkManager[945]: <info> Activation (eth1) Stage 4 of 5 (IPv4 Configure Timeout) complete.
Mar  3 18:18:43 multivac NetworkManager[945]: <info> (eth1): device state change: failed -> disconnected (reason 'none') [120 30 0]
Mar  3 18:18:43 multivac NetworkManager[945]: <info> (eth1): deactivating device (reason 'none')

  • Mar  3 18:18:43 multivac NetworkManager[945]: <info> Policy set 'Conexión cableada 2' (usb0) as default for IPv4 routing and DNS.
Al final 'Conexión cableada 2' es mi celular conectado al pc para tener internet.
Reinicie el router, el notebook, los servicios, cambie la clave, el essid, de wep a wpa. Puse el mac del pc en el router para "Static DHCP Leases Table" pero no sirvio. La configuración del servidor DHCP parece funcionar bien. Puse "olvidar red" y tampoco.

Gracias de antemano.
#3
GNU/Linux / Problema Particiones
2 Septiembre 2012, 03:22 AM
Tengo instalado en un notebook windows 7 y fedora. Antes estaba con w7 y ubuntu. Luego de bastante tiempo usando fedora preferi volver a ubuntu pero al ingresar el live cd me dio el error "Unable to find a medium containing a live file system". Busque un poco y creo que es problema de como tengo el disco duro partido. Los discos me estaban dando problema hace tiempo, les dejo una imagen de Gparted.

#4
En un post en mi blog hablaba sobre este script en python que estaba preparando. Elephant BS sirve para encontrar errores php en carpetas de scripts webs y funciona principalmente con expresiones regulares (Regex), muchas veces no encuentra el problema tal cual pero nos ayuda mucho a ahorrar tiempo para investigarlo. Libero el código para que puedan verlo un poco, acepto (y deseo) sugerencias... Les recomiendo usar la opción -he

Citar
  • Changelog
        1.0 Beta 19/09/2011
        - Funcionando con 8 expresiones regulares
        - Búsqueda recursiva de archivos
        - Añadidos opción varias extensiones
        - Añadido opción heurística (agarra variables)
Yo les pregunto:

¿Algún mejor nombre para la opción heurística? (No se me ocurrió nada)

Código Fuente:

Captura:


Favor de sugerir y ayudar!
#5
Hacking / DNS Spoofing - Otro Método...
23 Enero 2011, 23:39 PM
DNS Spoofing - Otro Método...

Tutorial en PDF (online y descarga):
http://www.scribd.com/doc/47406004
Paquete para tutorial: Paquete suplantación DNS v 0.1 [2.21 mb]


Uno muchas veces tiene acceso a una red y su router (por que el 90% de los casos el usuario y contraseña es admin) pero uno no sabe cómo aprovecharse de esto.
El DNS Spoofing es una técnica muy poderosa, pero por el método típico de ARP Spoofing es un poco lento y notorio. Para resolver esto vamos a hacer lo siguiente, en la configuración de los routers es posible especificar un servidor DNS primario y secundario para resolver las páginas de Internet (el servidor DNS es el encargado de decirte que google.com es en realidad 190.96.87.19), muchas veces para no depender de el servidor DNS utilizado por tu ISP. Entonces lo que haremos será especificar un servidor DNS nuestro como primario y como secundario utilizaremos un servidor DNS común y muy usado que es el de google (8.8.8.8 y 8.8.4.4), así cuando algún usuario dentro de la red quiera meterse a gmail.com, primero se resuelva la dirección a través de nuestro servidor DNS (y lo dirigiríamos a una IP nuestra jijiji) y sino google se encargara de resolver a la verdadera IP y así no será notorio el ataque.


Manos a la obra ¿Que necesitamos?:


  • Verificar que podemos entrar a la configuración del router (Mediante web o telnet, lo haremos por la primera) o la configuración de internet de la victima (por acceso físico a la computador o un batch).

  • Un servidor DNS (En este caso usaremos BIND, que ya viene configurado en el paquete de abajo para el fake de gmail.com).

  • Alguna web objetivo y su correspondiente fake (en este caso usare gmail.com, y en el paquete más abajo viene listo).


Para explotar esto hice un paquete, al cual le introduje un poco de batch y PHP para hacer más sencillo todo esto y este se puede descargar aquí.
El paquete incluye 3 cosas:


  • BIND: con el software del mismo nombre, BIND es el servidor DNS más utilizado en el mundo, viene configurado y listo para explotar www.gmail.com.

  • htdocs: que tiene un sistema para facilitar la gestión de fakes y la recopilación de contraseñas, como ahora intento solo mostrar esto, solo viene el fake de www.gmail.com, pero hice cosas para facilitar la creación de otros.

  • Start.bat: un sencillo script batch para iniciar el servidor BIND.

Poner Fake online

Lo primero es poner la carpeta htdocs de manera que este online, esto tiene que ser en el mismo servidor que el servidor DNS (así está configurado este último, para apuntar a sí mismo, pero esto se puede cambiar), para esto lo que yo recomiendo es usar XAMPP (www.apachefriends.org/es/xampp.html) y dentro de la carpeta instalada meten los archivos de htdocs en la carpeta htdocs del servidor XAMPP.

Iniciando Servidor DNS

Lo primera es iniciar BIND, para esto solo tenemos que apretar Start.bat que está en la carpeta principal del paquete. Se nos abrirán dos consolas, una que inicia el servidor BIND, en la cual si al final sale "running", estamos al otro lado...

Configurar Router o Computadora

Tenemos dos posibles formas de suplantar en la víctima al servidor DNS.
La primera seria cambiar la configuración de su conexión, pero para eso necesitamos acceso al PC de la víctima o que esta inicie un batch nuestro o algo. Para hacer esto nos dirigimos a "Panel de control" ?"Conexiones de red" luego ponemos las propiedades de la conexión buscada, seleccionamos "Protocolo Internet (TCP/IP)" y sus propiedades, luego "Usar las siguientes direcciones de servidor DNS" y como primaria escribimos la IP del servidor DNS (en este caso 192.168.1.104, nuestra computadora, no necesita necesariamente ser interno de la red) y luego como servidor secundario pondremos al servidor DNS de google (8.8.8.8 o 8.8.4.4)


Para la opción de configurar el router, debemos tener acceso a este, como normalmente la IP es 192.168.1.1, el usuario "admin" y contraseña "admin" casi siempre es sencillo entrar. Debemos buscar alguna parte donde se configure el servidor DNS (Normalmente en la sección WAN), si hay alguna opción disable ponerla enabled, y tenemos que poner lo mismo que antes (servidor primario: la IP del servidor DNS nuestro y el servidor secundario usaremos google 8.8.8.8 o 8.8.4.4)


Esperando Victimas
Luego solo nos toca esperar, puede ser que el ataque demore por varias razones, en primer lugar la víctima puede no visitar la web... o el cache del DNS se demora mucho en refrescar y el ataque no tiene efecto hasta un par de horas (se puede solucionar si reiniciamos el router), el ataque se vería así.


Al acceder a gmail, nuestro servidor DNS resuelve www.gmail.com en nuestra IP especificada (por ejemplo 192.168.1.104), al ingresar a esta index.php verifica cual es el la dirección por la que llego la victima (en este caso gmail.com), y luego pone el fake correspondiente a el dominio suplantado, el usuario escribe su email y contraseña y cuando pone enviar, se envía a login.php que guarda esto en log.txt (en la carpeta htdocs) y luego redirecciona a la victima a mail.google.com (donde puede logearse con facilidad)


Nos vamos a la carpeta htdocs de XAMPP, y luego abrimos el archivo log.txt, y WALA! el usuario y contraseña buscados

Por favor cualquier error, avisarme :)

#6
Seguridad / [Bug] Escondiendo Programa en Autorun
16 Noviembre 2010, 02:15 AM
Escondiendo Programa en Autorun

Hace poco estaba trabajando en un keylogger (muy chido), y cuando le agrege la función para iniciarse con el sistema, todo funciono perfectamente, el keylogger se iniciaba cuando iniciaba session.
Luego inicie el programa System Explorer para ver los runs o claves de registro que habían:


Extrañamente me fije que no estaba el keylogger... ¿Extraño no?, mejor veamos msconfig


¿WTF? y como se prende el programa?? revise las claves del registro...


Hay esta..... y por que no lo muestra??? Respuesta: fijense que el nombre del valor es (Predeterminado) (no literalmente, en realidad no tiene nombre) y por eso no lo muestra
En fin hice un programa para mostrar esto:


El codigo hecho en C# es algo así:

Código (csharp) [Seleccionar]
RegistryKey reg = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true);
reg.SetValue("", textBox1.Text);


Posibilidades?? existen muchas claves de registro para iniciar programas y buscar en cada una es algo largo, por lo que casi todos usan y confían en programas que, como yo les demuestro, no funcionan, así se pueden esconder programas espías, virus, etc.
Citar
HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKCU\Software\Microsoft\Windows\CurrentVersion\RunServices
HKCU\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
HKLM\Software\Microsoft\Windows\CurrentVersion\Run
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit

Probado en Windows XP, ¿quiere probarlo alguno? ¿Alguien lo conocía?


#7
Hola estoy usando Ubuntu 10.04 LTS y me sucede que desde que lo instale paso unos 20-30 minutos en mi sesión y repentinamente desaparecen las barras de arriba, es decir, donde están el titulo de la ventana y los botones para minimizar, cerrar, etc. por lo que tengo que reiniciar
¿Alguna idea?
gracias de antemano
#8
Un buscador que hice en python, gracias a la idea de otro post de este foro
Con este script puedes facilmente navegar/descargar y ejecutar exploit de exploit-db
Creo que todavia le queda mucho por mejorar.
Para  linux y windows
Pastebin: http://isseu.pastebin.com/G9xh7XDV
Download: http://isseu.pastebin.com/download.php?i=G9xh7XDV

Searchedb.PY
Código (python) [Seleccionar]
#!/usr/bin/env python
import urllib2
import re
import os
import string

def Verde(a):
if os.name=="posix": #linux
return "\033[32m"+a+"\033[0m"
else:
return a
def Rojo(a):
if os.name=="posix": #linux
return "\33[31m"+a+"\033[0m"
else:
return a
def Limpiar():
if os.name=="posix":
os.system("clear") #linux
else:
os.system("cls") #windows
def sisalir(a):
if string.upper(input) =="QUIT":
exit(0)
def GetWeb(web):
source=string
try:
    source=urllib2.urlopen(web)
except urllib2.HTTPError, e:  
    print Rojo("[!] Error HTTP")
    print Rojo(e.code)
    exit(0)  
except urllib2.URLError, e:  
    print Rojo("[!] Error URL")
    print Rojo(e.reason)
    exit(0)
return source.read()
def extension(archivo):
return archivo[archivo.rfind(".")+1:len(archivo)]
def Ejecutar(path):
print "";
type=extension(path)
if type=="py":
print Rojo("[#] system(\"python "+path+")\"")
os.system("python "+path);
print Rojo("[#] Finish")
if type=="pl":
print Rojo("[#] system(\"perl "+path+")\"")
os.system("perl "+path);
print Rojo("[#] Finish")
print ""
def FileType(web):
try:
    web=urllib2.urlopen(urllib2.Request(web))
except urllib2.HTTPError, e:  
    print Rojo("[!] Error HTTP")
    print Rojo(e.code)
    exit(0)  
except urllib2.URLError, e:  
    print Rojo("[!] Error URL")
    print Rojo(e.reason)
    exit(0)
info=str(web.info())
info=re.search("filename=\d+\.(txt|py|pl|cpp|c|jar)",info).group()
info=re.search("txt|py|pl|cpp|c|jar",info).group()
return info
def ExploitDB(input,page=0):
print "";
sitio = "http://www.exploit-db.com/list.php?page="+str(page)+"&description="+input+"&author=&platform=&type=&port=&osvdb=&cve="
source = GetWeb(sitio)
urls=re.findall("href=\'/exploits/\d+",source)
numerop=re.findall("href='/list.php?page=\d+&description="+input+"&platform=&type=&port=&author=&osvdb=&cve='>\d+</a>",source)
names=re.findall("target=_blank>.*</a>",source)
print Verde("[+]")+" Hay "+str(len(names))+" Resultados (+"+Verde(str(len(numerop)))+" paginas):"
print "";
if len(names)>=1:
for i in range(len(names)):
name=names[i]
name=name[14:len(name)-4]
print "["+str(i+1)+"] "+name
valor=raw_input(Verde("[?]")+" Ingrese Id exploit a ver (0 = Siguiente pagina; -1= Buscar Otra Cosa)\n-->")
sisalir(valor);
if string.atoi(valor)<=0:
if string.atoi(valor)==0:
ExploitDB(input,(page+1))
if string.atoi(valor)==2:
return;
else:
subs=urls[string.atoi(valor)-1]
subs=subs[16:len(subs)]
sitio="http://www.exploit-db.com/download/"+subs;
tipo=FileType(sitio)
name=names[i]
name=name[14:len(name)-4]
print "";
print Verde("[+]")+" Exploit Seleccionado:";
print "[ID] #" + subs + ":"
print "[Nombre] " + name
print "[Url] " + sitio
print "[Leng] " + tipo
descargado=False
while (True) or ((string.atoi(valor) > 0) and (string.atoi(valor) < 4)):
if descargado:
valor=raw_input(Verde("[?]")+"Opciones: (1) Ver (2) Descargar (3) Volver Atras (4) Ejecutar\n-->")
else:
valor=raw_input(Verde("[?]")+"Opciones: (1) Ver (2) Descargar (3) Volver Atras\n-->")
sisalir(input);
if string.atoi(valor)==1:
print ""
print "";
source = GetWeb(sitio)
print source;
if string.atoi(valor)==2:
print ""
source = GetWeb(sitio)
subs=subs+"."+FileType(sitio)
FILE = open(subs,"w")
FILE.write(source);
FILE.close();
print Verde("[+]")+" Guardado Como: "+os.curdir+"/"+subs
if (extension(subs)=="pl") or (extension(subs)=="py"):
descargado=True
if string.atoi(valor)==3:
ExploitDB(input,page)
break;
if (string.atoi(valor)==4) and (descargado==True):
Ejecutar(subs)
break;
else:
print Rojo("[!]")+" No hay Resultados Para mostrar"


if __name__ == "__main__":
Limpiar()
print "   ########################"
print "   # "+Rojo("Buscador De Exploits")+" #"
print "   # "+Rojo("De Exploit-db.com")+" ####"
print "   # "+Rojo("Por Isseu")+" ############"
print "   ################# "+Verde("V1.0")+" #"
print ""
while True:
input = raw_input(Verde("[?]")+" Ingrese Nombre de la Aplicacion a Buscar ("+Rojo("Quit")+" para salir)\n-->");
sisalir(input);
print Verde("[+]")+" Buscando "+input+" en ExploitDB [...]";
ExploitDB(input)


#9
Scripting / Funcion Ip Publica [Perl]
19 Abril 2010, 03:55 AM
Una funcion que hice para probar un poco de "regex", usando la web http://ip.interchile.com/ devuelve tu ip publica como string,
Código (perl) [Seleccionar]
#!/usr/bin/perl
$ip=GetPublicIp();
if($ip ne "Error"){
print $ip;
}else{
print "Error";
}

sub GetPublicIp{
#Funcion Por Isseu
use LWP::Simple;
use LWP::UserAgent;
use HTTP::Request;
use HTTP::Response;
$URL="http://ip.interchile.com/";
$browser = LWP::UserAgent->new();
$browser->timeout(5);
my $request = HTTP::Request->new(GET => $URL);
my $response = $browser->request($request);
if(!$response->is_error()){
$data=$response->content();
$data=substr($data,630,50);
if($data=~/<font size=7>(.+\..+\..+\..+)<\/font>/){
    return $1;
    }else{
print "Error";
}


}else{
print "Error";
}
}



#10
Como puedo hacer que al apretar cierto conjunto de teclas, se habra una form??, estoy usando GetAsyncKeyState() del api de windows, pero lo estoy usando de esta forma (en un timer claro):
Código (csharp) [Seleccionar]
                if (GetAsyncKeyState(0x46) == -32767)
                {
                    if (GetAsyncKeyState(0xA2) == -32767 || GetAsyncKeyState(0xA3) == -32767)
                    {
                        this.Visible = true;
                    }
                }

0x46=f
0xA2 y 0xA3 son ambos ctrl
Sucede que para que se habra hay que apretar ambos al mismo tiempo con poca diferencia de tiempo, ¿que otra manera mejor existe?
#11
Echo en Mono, por lo que tambien funciona para este, util para hacer algo sencillo lo de la consola, y puede mejorarse mucho

Código (csharp) [Seleccionar]

using System;
class Menu

{

static void Main()
{
int opcion=1;
Console.Clear();
Console.SetCursorPosition(20,1);
System.Console.WriteLine("Opciones");

Console.SetCursorPosition(16, 3);
System.Console.WriteLine("[ ]Opcion 1");
Console.SetCursorPosition(16, 4);
System.Console.WriteLine("[ ]Opcion 2");
Console.SetCursorPosition(16, 5);
System.Console.WriteLine("[ ]Opcion 3");
armar(opcion);
while(true){

if(Console.KeyAvailable){
ConsoleKeyInfo keyInfo = Console.ReadKey(true);
if (keyInfo.Key==ConsoleKey.DownArrow){
borrar(opcion);
opcion=sumarrestar(opcion,true);
           armar(opcion);
}

if (keyInfo.Key==ConsoleKey.UpArrow){
borrar(opcion);
opcion=sumarrestar(opcion,false);
           armar(opcion);
}
if (keyInfo.Key==ConsoleKey.Enter){
//Codigo a ejecutar al hacer enter en algun item del menu
Console.Beep();
//Fin del codigo
}


}
}


}
static void armar(int opcion){
if(opcion==1){
Console.SetCursorPosition(17, 3);
System.Console.WriteLine("+");
}
if(opcion==2){
Console.SetCursorPosition(17, 4);
System.Console.WriteLine("+");
}
if(opcion==3){
Console.SetCursorPosition(17, 5);
System.Console.WriteLine("+");
}
}

static void borrar(int opcion){
if(opcion==1){
Console.SetCursorPosition(17, 3);
System.Console.WriteLine(" ");
}
if(opcion==2){
Console.SetCursorPosition(17, 4);
System.Console.WriteLine(" ");
}
if(opcion==3){
Console.SetCursorPosition(17, 5);
System.Console.WriteLine(" ");
}
}




static int sumarrestar(int asumar,bool sumaoresta){
if(sumaoresta==true){
       if(asumar<3){
asumar=asumar+1;
}else{
asumar=1;
}
}
if(sumaoresta==false){
       if(asumar>1){
asumar=asumar-1;
}else{
asumar=3;
}
}
return asumar;
}
}
#12
Scripting / Funcion isprime() [Python]
5 Junio 2009, 02:14 AM
Aprendiendo Python y tratando de descubrir alguna forma por mi solo para sacar comprobar si un numero es primo cree esta funcion que compare con otras que aparecen en la red y puedo decir que es mas rapida y gasta menos recursos que las demas
Sacar Primeros 100 digitos Primos:

Código (python) [Seleccionar]
#/usr/bin/env phyton
import math

def isprime(a):
d = True
if a==0 or a==1:
 d=False
b = 2
c = math.sqrt(a)
while b <= c and d == True:
 if a%b==0:
  d = False
 b+=1
return d

a=1
while(a<100):
if(isprime(a)==True):
 print str(a)
a+=2
#13
Se puede Ejecutar alguna aplicacion escrita en c# sin net framework, por ejemplo un virus o cualquier otro programa....
#14
Diseño Gráfico / Wallpaper Geek
31 Mayo 2009, 22:15 PM
Inkscape y Gimp
Se ve bien 1200;900

#15
Alguen conoce alguna libreria gratuita (no demo), para hacer en c# archivos sfx, (Self-extracting archive),
gracias de antemano
#16
PHP / Como hacer algo cuando se desconecte??
21 Marzo 2009, 00:45 AM
Me explico,
Estoy haciendo un pagina en php, en donde se cargan archivos, pero estos archivos la idea no es almacernarlos sino sacar info de ellos, entonces necesito que mientras la persona X este conectada los archivos esten en el servidor pero solo cuando ella se salga o cierre la pagina estos archivos se borren, ¿como hago esto?
gracias de antemano
#17
Como puedo obtener el codigo fuente de otra web con php???, se me ocurria enviar con socket un get ,pero lo encontre un tanto largo y lento, existe alguna funciona para esto, esque tengo informacion en otra pagina que necesito sacar y mostrar en la mia, pero como!
#18
.NET (C#, VB.NET, ASP) / Pong en c#
3 Marzo 2009, 15:29 PM
Para modo consola yo no lo hice!
Código (csharp) [Seleccionar]
using System;

class PongGame
{

    static void winner(int team)
    {

        Console.Clear();

        switch (team)
        {

            case 1:

                Console.SetCursorPosition(30, 15);

                Console.Write("PLAYER 1 WINS!!");

                Console.SetCursorPosition(0, 24);

                break;

            case 2:

                Console.SetCursorPosition(30, 15);

                Console.Write("PLAYER 2 WINS!!");

                Console.SetCursorPosition(0, 24);

                break;

        }

        System.Threading.Thread.Sleep(2000);



    }



    static void number1(int score)
    {

        switch (score)
        {

            case 0:

                for (int i = 0; i < 5; i = i + 1)
                {

                    int one = i + 15;

                    Console.SetCursorPosition(one, 6);

                    Console.Write("#");

                }





                for (int i = 0; i < 5; i = i + 1)
                {

                    int one = i + 15;

                    Console.SetCursorPosition(one, 10);

                    Console.Write("#");

                }

                Console.SetCursorPosition(15, 7);

                Console.Write("#");

                Console.SetCursorPosition(19, 9);

                Console.Write("#");

                Console.SetCursorPosition(19, 7);

                Console.Write("#");

                Console.SetCursorPosition(15, 9);

                Console.Write("#");

                Console.SetCursorPosition(19, 8);

                Console.Write("#");

                Console.SetCursorPosition(15, 8);

                Console.Write("#");



                break;

            case 1:

                for (int i = 0; i < 5; i = i + 1)
                {

                    int one = i + 6;

                    Console.SetCursorPosition(15, one);

                    Console.Write("#");

                }

                Console.SetCursorPosition(14, 7);

                Console.Write("#");

                break;

            case 2:

                for (int i = 0; i < 5; i = i + 1)
                {

                    int one = i + 15;

                    Console.SetCursorPosition(one, 6);

                    Console.Write("#");

                }



                for (int i = 0; i < 5; i = i + 1)
                {

                    int one = i + 15;

                    Console.SetCursorPosition(one, 8);

                    Console.Write("#");

                }



                for (int i = 0; i < 5; i = i + 1)
                {

                    int one = i + 15;

                    Console.SetCursorPosition(one, 10);

                    Console.Write("#");

                }

                Console.SetCursorPosition(19, 7);

                Console.Write("#");

                Console.SetCursorPosition(15, 9);

                Console.Write("#");



                break;

            case 3:

                for (int i = 0; i < 5; i = i + 1)
                {

                    int one = i + 15;

                    Console.SetCursorPosition(one, 6);

                    Console.Write("#");

                }



                for (int i = 0; i < 5; i = i + 1)
                {

                    int one = i + 15;

                    Console.SetCursorPosition(one, 8);

                    Console.Write("#");

                }



                for (int i = 0; i < 5; i = i + 1)
                {

                    int one = i + 15;

                    Console.SetCursorPosition(one, 10);

                    Console.Write("#");

                }

                Console.SetCursorPosition(19, 7);

                Console.Write("#");

                Console.SetCursorPosition(19, 9);

                Console.Write("#");



                break;

            case 4:

                Console.SetCursorPosition(15, 6);

                Console.Write("#");



                for (int i = 0; i < 5; i = i + 1)
                {

                    int one = i + 15;

                    Console.SetCursorPosition(one, 8);

                    Console.Write("#");

                }





                Console.SetCursorPosition(15, 7);

                Console.Write("#");

                Console.SetCursorPosition(17, 9);

                Console.Write("#");

                Console.SetCursorPosition(17, 7);

                Console.Write("#");

                Console.SetCursorPosition(17, 10);

                Console.Write("#");

                break;



            case 5:

                for (int i = 0; i < 5; i = i + 1)
                {

                    int one = i + 15;

                    Console.SetCursorPosition(one, 6);

                    Console.Write("#");

                }



                for (int i = 0; i < 5; i = i + 1)
                {

                    int one = i + 15;

                    Console.SetCursorPosition(one, 8);

                    Console.Write("#");

                }



                for (int i = 0; i < 5; i = i + 1)
                {

                    int one = i + 15;

                    Console.SetCursorPosition(one, 10);

                    Console.Write("#");

                }

                Console.SetCursorPosition(15, 7);

                Console.Write("#");

                Console.SetCursorPosition(19, 9);

                Console.Write("#");



                break;

        }



    }



    static void number2(int score)
    {

        switch (score)
        {

            case 0:

                for (int i = 0; i < 5; i = i + 1)
                {

                    int one = i + 55;

                    Console.SetCursorPosition(one, 6);

                    Console.Write("#");

                }





                for (int i = 0; i < 5; i = i + 1)
                {

                    int one = i + 55;

                    Console.SetCursorPosition(one, 10);

                    Console.Write("#");

                }

                Console.SetCursorPosition(55, 7);

                Console.Write("#");

                Console.SetCursorPosition(59, 9);

                Console.Write("#");

                Console.SetCursorPosition(59, 7);

                Console.Write("#");

                Console.SetCursorPosition(55, 9);

                Console.Write("#");

                Console.SetCursorPosition(59, 8);

                Console.Write("#");

                Console.SetCursorPosition(55, 8);

                Console.Write("#");



                break;

            case 1:

                for (int i = 0; i < 5; i = i + 1)
                {

                    int one = i + 6;

                    Console.SetCursorPosition(55, one);

                    Console.Write("#");

                }

                Console.SetCursorPosition(54, 7);

                Console.Write("#");

                break;

            case 2:

                for (int i = 0; i < 5; i = i + 1)
                {

                    int one = i + 55;

                    Console.SetCursorPosition(one, 6);

                    Console.Write("#");

                }



                for (int i = 0; i < 5; i = i + 1)
                {

                    int one = i + 55;

                    Console.SetCursorPosition(one, 8);

                    Console.Write("#");

                }



                for (int i = 0; i < 5; i = i + 1)
                {

                    int one = i + 55;

                    Console.SetCursorPosition(one, 10);

                    Console.Write("#");

                }

                Console.SetCursorPosition(59, 7);

                Console.Write("#");

                Console.SetCursorPosition(55, 9);

                Console.Write("#");



                break;

            case 3:

                for (int i = 0; i < 5; i = i + 1)
                {

                    int one = i + 55;

                    Console.SetCursorPosition(one, 6);

                    Console.Write("#");

                }



                for (int i = 0; i < 5; i = i + 1)
                {

                    int one = i + 55;

                    Console.SetCursorPosition(one, 8);

                    Console.Write("#");

                }



                for (int i = 0; i < 5; i = i + 1)
                {

                    int one = i + 55;

                    Console.SetCursorPosition(one, 10);

                    Console.Write("#");

                }

                Console.SetCursorPosition(59, 7);

                Console.Write("#");

                Console.SetCursorPosition(59, 9);

                Console.Write("#");



                break;

            case 4:

                Console.SetCursorPosition(55, 6);

                Console.Write("#");



                for (int i = 0; i < 5; i = i + 1)
                {

                    int one = i + 55;

                    Console.SetCursorPosition(one, 8);

                    Console.Write("#");

                }





                Console.SetCursorPosition(55, 7);

                Console.Write("#");

                Console.SetCursorPosition(57, 9);

                Console.Write("#");

                Console.SetCursorPosition(57, 7);

                Console.Write("#");

                Console.SetCursorPosition(57, 10);

                Console.Write("#");

                break;



            case 5:

                for (int i = 0; i < 5; i = i + 1)
                {

                    int one = i + 55;

                    Console.SetCursorPosition(one, 6);

                    Console.Write("#");

                }



                for (int i = 0; i < 5; i = i + 1)
                {

                    int one = i + 55;

                    Console.SetCursorPosition(one, 8);

                    Console.Write("#");

                }



                for (int i = 0; i < 5; i = i + 1)
                {

                    int one = i + 55;

                    Console.SetCursorPosition(one, 10);

                    Console.Write("#");

                }

                Console.SetCursorPosition(55, 7);

                Console.Write("#");

                Console.SetCursorPosition(59, 9);

                Console.Write("#");



                break;

        }



    }



    public static void Main()
    {

        int x = 45;

        int y = 10;

        int xSpeed = 1;

        int ySpeed = 1;

        bool gamestillrunning = true;





        int higherY = 6;

        int middleHigherY = 7;

        int middleY = 8;

        int middleLowerY = 9;

        int lowerY = 10;

        int ydirection1 = 0;



        int higherY2 = 6;

        int middleHigherY2 = 7;

        int middleY2 = 8;

        int middleLowerY2 = 9;

        int lowerY2 = 10;

        int ydirection2 = 0;



        int score1 = 0;

        int score2 = 0;

        int speed = 200;
        string playersstring;


        int speedtimer = 100;

        Console.Clear();

        Console.WriteLine("How many Players, 1 or 2?");
        playersstring = Console.ReadLine();
        Console.Clear();






        while (gamestillrunning)
        {




            for (int i = 0; i < 19; i = i + 1)
            {

                int newy = i + 3;

                Console.SetCursorPosition(36, newy);

                Console.Write(":");

            }

            if (playersstring == "1")
            {
                if ((ySpeed == -1) && (x < 30))
                {
                    ydirection1 = -1;
                }
                if (ySpeed == 1)
                {
                    ydirection1 = 1;
                }
            }



            Console.SetCursorPosition(30, 0);

            Console.Write("Pong - By Joe Buckton" + x);



            if ((speedtimer == 0) && (speed > 50))
            {



                speed = speed - 40;

                speedtimer = speedtimer + 100;

            }



            Console.SetCursorPosition(0, 0);

            Console.Write("Score: " + score1 + " - " + score2);

            Console.SetCursorPosition(x, y);

            Console.Write(" ");

            x = x + xSpeed;

            y = y + ySpeed;



            Console.SetCursorPosition(3, higherY);

            Console.Write(" ");

            Console.SetCursorPosition(3, middleHigherY);

            Console.Write(" ");

            Console.SetCursorPosition(3, middleY);

            Console.Write(" ");

            Console.SetCursorPosition(3, middleLowerY);

            Console.Write(" ");

            Console.SetCursorPosition(3, lowerY);

            Console.Write(" ");



            Console.SetCursorPosition(75, higherY2);

            Console.Write(" ");

            Console.SetCursorPosition(75, middleHigherY2);

            Console.Write(" ");

            Console.SetCursorPosition(75, middleY2);

            Console.Write(" ");

            Console.SetCursorPosition(75, middleLowerY2);

            Console.Write(" ");

            Console.SetCursorPosition(75, lowerY2);

            Console.Write(" ");



            if (Console.KeyAvailable)
            {

                ConsoleKeyInfo keyInfo =

                Console.ReadKey(true);

                switch (keyInfo.Key)
                {

                    case ConsoleKey.Escape:

                        gamestillrunning = false;

                        break;

                    case ConsoleKey.Q:

                        if (playersstring == "2")
                        {
                            if (ydirection1 == 1)
                            {

                                ydirection1 = ydirection1 - 2;

                                break;

                            }

                            if (ydirection1 == -1)
                            {

                                break;

                            }

                            ydirection1 = ydirection1 - 1;
                        }

                        break;

                    case ConsoleKey.Z:

                        if (playersstring == "2")
                        {
                            if (ydirection1 == -1)
                            {

                                ydirection1 = ydirection1 + 2;

                                break;

                            }

                            if (ydirection1 == +1)
                            {

                                break;

                            }

                            ydirection1 = ydirection1 + 1;
                        }

                        break;

                    case ConsoleKey.UpArrow:

                        if (ydirection2 == 1)
                        {

                            ydirection2 = ydirection2 - 2;

                            break;

                        }

                        if (ydirection2 == -1)
                        {

                            break;

                        }

                        ydirection2 = ydirection2 - 1;

                        break;

                    case ConsoleKey.DownArrow:

                        if (ydirection2 == -1)
                        {

                            ydirection2 = ydirection2 + 2;

                            break;

                        }

                        if (ydirection2 == +1)
                        {

                            break;

                        }

                        ydirection2 = ydirection2 + 1;

                        break;



                        for (int i = 0; i < 5; i = i + 1)
                        {

                            int one = i + 15;

                            Console.SetCursorPosition(one, 6);

                            Console.Write("#");

                        }



                        for (int i = 0; i < 5; i = i + 1)
                        {

                            int one = i + 15;

                            Console.SetCursorPosition(one, 8);

                            Console.Write("#");

                        }



                        for (int i = 0; i < 5; i = i + 1)
                        {

                            int one = i + 15;

                            Console.SetCursorPosition(one, 10);

                            Console.Write("#");

                        }

                        Console.SetCursorPosition(19, 7);

                        Console.Write("#");

                        Console.SetCursorPosition(15, 9);

                        Console.Write("#");



                        break;

                }

            }

            higherY = higherY + ydirection1;

            higherY2 = higherY2 + ydirection2;



            middleHigherY = higherY + 1;

            middleY = higherY + 2;

            middleLowerY = higherY + 3;

            lowerY = higherY + 4;



            middleHigherY2 = higherY2 + 1;

            middleY2 = higherY2 + 2;

            middleLowerY2 = higherY2 + 3;

            lowerY2 = higherY2 + 4;



            Console.SetCursorPosition(x, y);

            Console.Write("*");



            Console.SetCursorPosition(3, higherY);

            Console.Write("|");

            Console.SetCursorPosition(3, middleHigherY);

            Console.Write("|");

            Console.SetCursorPosition(3, middleY);

            Console.Write("|");

            Console.SetCursorPosition(3, middleLowerY);

            Console.Write("|");

            Console.SetCursorPosition(3, lowerY);

            Console.Write("|");



            Console.SetCursorPosition(75, higherY2);

            Console.Write("|");

            Console.SetCursorPosition(75, middleHigherY2);

            Console.Write("|");

            Console.SetCursorPosition(75, middleY2);

            Console.Write("|");

            Console.SetCursorPosition(75, middleLowerY2);

            Console.Write("|");

            Console.SetCursorPosition(75, lowerY2);

            Console.Write("|");





            if (x == 2)
            {

                Console.Clear();

                score2 = score2 + 1;

                number1(score1);

                number2(score2);

                Console.SetCursorPosition(x, y);

                Console.Write(" ");

                x = 45;

                y = 12;
                speed = 200;

                Console.SetCursorPosition(30, 12);

                Console.Write("GOOOAAAAAL!");

                System.Threading.Thread.Sleep(5000);

                Console.SetCursorPosition(35, 12);

                Console.Clear();



            }





            if (x == 77)
            {

                Console.Clear();

                score1 = score1 + 1;

                number1(score1);

                number2(score2);

                Console.SetCursorPosition(x, y);

                Console.Write(" ");

                x = 45;

                y = 12;
                speed = 200;

                Console.SetCursorPosition(30, 12);

                Console.Write("GOOOAAAAAL!");

                System.Threading.Thread.Sleep(2000);

                Console.SetCursorPosition(35, 12);

                Console.Clear();



            }



            if ((y == 22) || (y == 3))
            {

                ySpeed = ySpeed * -1;

            }

            if (higherY == 2)
            {

                higherY = higherY + 1;

                Console.SetCursorPosition(3, 2);

                Console.Write(" ");

                Console.SetCursorPosition(3, 7);

                Console.Write("|");

            }



            if (lowerY == 23)
            {

                higherY = higherY - 1;

                Console.SetCursorPosition(3, 23);

                Console.Write(" ");

                Console.SetCursorPosition(3, 18);

                Console.Write("|");

            }



            if (higherY2 == 2)
            {

                higherY2 = higherY2 + 1;

                Console.SetCursorPosition(75, 2);

                Console.Write(" ");

                Console.SetCursorPosition(75, 7);

                Console.Write("|");

            }



            if (lowerY2 == 23)
            {

                higherY2 = higherY2 - 1;

                Console.SetCursorPosition(75, 23);

                Console.Write(" ");

                Console.SetCursorPosition(75, 18);

                Console.Write("|");

            }

            if (x == 3)
            {





                if (y == middleY)
                {

                    xSpeed = xSpeed * -1;

                }



                if ((y == lowerY) || (y == middleLowerY))
                {

                    ySpeed = 1;

                    xSpeed = xSpeed * -1;

                }



                if ((y == middleHigherY) || (y == higherY))
                {

                    ySpeed = -1;

                    xSpeed = xSpeed * -1;

                }

            }



            if (x == 75)
            {



                if (y == middleY2)
                {

                    xSpeed = xSpeed * -1;

                }



                if ((y == lowerY2) || (y == middleLowerY2))
                {

                    ySpeed = 1;

                    xSpeed = xSpeed * -1;

                }



                if ((y == middleHigherY2) || (y == higherY2))
                {

                    ySpeed = -1;

                    xSpeed = xSpeed * -1;

                }



            }



            if (score1 == 5)
            {

                Console.Clear();

                gamestillrunning = false;

                winner(1);

            }

            if (score2 == 5)
            {



                Console.Clear();

                gamestillrunning = false;

                winner(2);

            }



            System.Threading.Thread.Sleep(speed);

        }

    }



}
#19
.NET (C#, VB.NET, ASP) / 2 preguntas...
3 Marzo 2009, 15:07 PM
hola,
1ero- Como puedo hacer para qe el programa espere un poco, pero sin eso de thread.sleep, ya que eso congela todo el programa, hay otra forma??
2do- Estoy haciendo un md5 cracker, y tengo tyodo listo, pero (siempre el pero), mi problema es que mientras empieza a tratar constraseñas, el programa se queda congelado siesqe uno lo minimiza y maximiza luego, tambien siesque uno apreta la form en calquier parte, estaba pensando en multithreading, pero queria prejuntarles antes, qe dicen? (perdon por la ortografia (como el orto) es que tengo algunas letras malas)
#20
Tamaño: 18 mb!
Download: (Upload gracias a gazup.com, que me sube en multiples hosting instantaneamente)
http://www.gazup.com/UsGVL-the_ultimate_html_reference.pdf-download-mirrors  <!--el link viene con una pagina con como 10 links, para descargarlo de rapidshare, mediafire, etc...se demora un poco en cargar a las demas paginas-->
#21

echo 90% por mi, icono de otra persona y tuve unos problemas con el hashing md5, me sirvio mucho para practicar, solo funciona a travez de diccionario, algunas partes las hice medias complejas y pudieron ser mucho mas sencillas, pero no importa
Descarga:
-http://www.mediafire.com/?yxzdwh40hly
-http://rapidshare.com/files/199368699/Mini_MD5_Cracker.rar.html
#22
saludos,
bueno me propuse para este año (quiero hacer artas cosas pero por ahora esto) obtener el certificado en c# de microsoft, y queria prejuntar que tan complejo es de obtener, que tipo de prejuntas te hacen etc etc, toda la info que puedan darme, tambien para que me podria servir en un futuro...
#23
Scripting / Uso http::cookies[perl]??
20 Enero 2009, 03:18 AM
como se utiliza, la info en cpan no me sirvio, alguen me explica?
#24
Scripting / MSN Perl y PHP
30 Diciembre 2008, 14:36 PM
Mi chat envia post a una pagina web que escribe los datos en un archivo de texto y tu los pudes visualizar, soportando arta gente, es decir, todos estos chat o clientes se conectan a la web y escriben y reciben por hay, para poner un sistema de identificacion solo hay que poner que estos post tengan de contenido la clave y hacer algo como:


if ($_POST['obtener']){
$hola=$_POST['obtener'];
if ($hola eq "clave"){
#codigo;
}}


client.pl


#!usr/bin/perl
#msn perl
use Time::HiRes qw(gettimeofday);
use LWP::UserAgent;
use HTTP::Request;
use MIME::Base64;
#ej http://www.google.com/path/msn.php
#coded by isseu#
$ip='http://www.google.com/path/msn.php';
$puerto="80";
$clave="juan";
&a;
sub a{
while(1){
print "--Msn perl, put !refresh to refresh the chat !clear to clear--\n";
my $query = ("obtener=1");
my $ua = LWP::UserAgent->new;
$ua->agent("Perl Msn");
my $req = HTTP::Request->new(POST => $ip);
$req->content_type('application/x-www-form-urlencoded');
$req->content($query);
my $response = $ua->request($req);
my $content = $response->content();
@content2=split("<!-- www.000webhost.com A",$content);
#esta ultima linea solo es para sacar la publicidad de mi web
print @content2[0];
print "Mensaje a Enviar: \n";
$enviar=<STDIN>;
chomp($enviar);
if ($enviar eq '!refresh'){
system("cls");
system("clear");
&a;}elsif($enviar eq '!clear'){

my $query = ("clear=1");
my $ua = LWP::UserAgent->new;
$ua->agent("Perl Msn");
my $req = HTTP::Request->new(POST => $ip);
$req->content_type('application/x-www-form-urlencoded');
$req->content($query);
my $response = $ua->request($req);
my $content = $response->content();
system("cls");
system("clear");
&a;
}else {
my $query = ("postear=$enviar");
my $ua = LWP::UserAgent->new;
$ua->agent("Perl Msn");
my $req = HTTP::Request->new(POST => $ip);
$req->content_type('application/x-www-form-urlencoded');
$req->content($query);
my $response = $ua->request($req);
my $content = $response->content();
system("cls");
system("clear");
&a;
}
}
}


msn.php

<?php
if($_POST['obtener']){
$f=fopen ('mensajes.txt','r');
$mensaje=fread($ffilesize('mensajes.txt'));
fclose($f);
echo $mensaje;

}
if(
$_POST['postear']){
$apostear=$_POST['postear'];
$archivo 'mensajes.txt';
$fp fopen($archivo"a");
$string "$apostear\n";
$write fputs($fp$string);
fclose($fp);
}
if(
$_POST['clear']){
$apostear=$_POST['postear'];
$archivo 'mensajes.txt';
$fp fopen($archivo"w");
$string ' ';
$write fputs($fp$string);
fclose($fp);}
?>



problemas:
-el primer mensaje saldra como:
hola
como estas
es decir el espacio el principio xd
- a veces el servidor me daba error 500
-nose sabe quien dio el mensaje pero se podria hacer asi si lo desean:


$user:'pablo';

y cuando envie el mensaje ponen


$envia2="$user: $enviar";
#lo que mandaria cosas como pablo: hola
my $query = ("postear=$enviar2");


waw ultimamente me gustaron mucho estos 2 lenguajes
#25
Scripting / Script para ver ip Publica en perl
27 Diciembre 2008, 04:31 AM
Un script en perl que hize como parte de uno de mis "proyectos":
usa ip.interchile.com, metodo de uso perl ippublica.pl <interfaz>
# lo de "interfaz" solo sirve para ver la ip privada, ya que la publica es determinada por GET,
#!/usr/bin/perl
##################################
##  Por Isseu "El hacker Gris"  ##
####### Powered by Miip.es #######
############ V 1.0 ###############
### Argumentos perl ip.pl wlan1 ##
$interfaz = $ARGV[0];
if (!$ARGV[0]){
open (o ,"> configipviewer");
@contenido=<o>;
    if(@contenido=""){
    print o "wlan1";
}
close o;
open (p, "< configipviewer");
@contenido2 = <p>;
close p;
    $interfaz = @contenido2[0];
print q "
Nose dio Ninguna Interfaz se hara con la interfaz predeterminada...
######### Metodo de uso: perl ip.pl <interfaz> #########";
print "\n           Interfaz por defecto actual $interfaz \n"; 

  }  
@ipprivada2=`GET ip.interchile.com`;
$ipprivada3=@ipprivada2[7];
my @data = split(">", $ipprivada3);
$ipprivada4=@data[5];
my @data2 = split("<", $ipprivada4);
$ip=@data2[0];

print "\n   Interfaz: $interfaz\n";
@ipprivada = `ifconfig $interfaz | grep inet`;
$ipprivada2=@ipprivada[0];
my @ipprivada3=split(":", $ipprivada2);
my @ipprivada4=split(" ", @ipprivada3[1]);
$ipprivada=@ipprivada4[0];

@ipprivada = `ifconfig $interfaz | grep inet`;
$ipprivada2=@ipprivada[0];
my @ipprivada3=split(":", $ipprivada2);
my @ipprivada4=split(" ", @ipprivada3[1]);
$ipprivada=@ipprivada4[0];

print "   Ip Publica: $ip\n";
print "   Ip Privada: $ipprivada\n";