elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 [9] 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ... 37
81  Programación / Scripting / Re: [BASH] Comprobar si existe archivo, para evitar reemplazarlo en: 25 Febrero 2012, 00:41 am
Muchas gracias! Has usado RegEx, ¿verdad?
82  Programación / Scripting / Re: Problema con batch en AT shutdown en: 24 Febrero 2012, 19:44 pm
Para que se apague el ordenador, es con shutdown -s. La opción -a sirve para cancelar el apagado del sistema...
83  Programación / Programación General / Re: Verificar si dos tuplas contienen los mismos valores [python] en: 23 Febrero 2012, 18:38 pm
Y luego me di cuenta de que podía ser más corta :xD
Código
  1. def hasSameContent(t1, t2):
  2. return all([(x in t2) for x in t1]) if len(t1)==len(t2) else False


El A if C else B xD, aquel que no sé implementar...
84  Sistemas Operativos / Windows / Poner accesos directos en un USB, ¿archivo.ini? en: 23 Febrero 2012, 17:15 pm
Tengo unos cuantos programas portables en mi USB y me gustaría poder tener unos accesos directos en la raíz o bien en alguna carpeta:

Directorio de F:\
- PROGRAMAS
    DATA
      Un montón de carpetas...
      CheatEngine (por ejemplo)
            cheatengine.exe

-FAPFAPPFA
-FAPFAPFAP

En la carpeta PROGRAMAS no puede haber ningún acceso directo a las subcarpetas??
85  Programación / Scripting / [BASH] Comprobar si existe archivo, para evitar reemplazarlo en: 22 Febrero 2012, 20:14 pm
Hola! Tengo una simple línea en un script que hace esto:
Código
  1. #!/bin/sh
  2. mencoder out.ogg -o video.avi -ovc lavc -oac mp3lame
Me gustaría que se guardara en el directorio del script, que compruebe si en el directorio de guardado ya existe el video.avi, que renombre el video.avi recién creado como video_1.avi o similar, y que lo mueva al directorio de guardado.

Supongo que será algo de ls y grep, pero no tengo ni idea...
¿Alguien me dice qué tengo que hacer?

Gracias!
86  Sistemas Operativos / GNU/Linux / Re: Alias o script? Usar el mencoder... en: 22 Febrero 2012, 20:04 pm
Ok! Gracias!
Si sólo necesito esto y ya va que chuta...  :D
87  Sistemas Operativos / GNU/Linux / Alias o script? Usar el mencoder... en: 22 Febrero 2012, 09:29 am
Hola! Tengo el recordmydesktop instalado, y funciona bien. Lo que pasa es que guarda el vídeo en formato .ogg . Entonces, uso esto:
Código
  1. mencoder out.ogg -o video.avi -ovc lavc -oac mp3lame

Pregunto: hay alguna manera de automatizar esto? Ya sea un script o un alias, pero no sé cómo hacerlo.

Saludos!
88  Programación / Scripting / Re: [PYTHON]Ejemplo: transferir archivos por internet en: 22 Febrero 2012, 09:22 am
CPORT y MPORT son dos puertos diferentes. En el puerto de control, envío una cadena con la ruta del archivo, para que pueda guardarse. En el puerto de multimedia, envío los datos del archivo.

En FAPFAPFAP estaban los nombres de mis amigos ;) usamos el script para pasarnos "apuntes". El problema es que la Wifi del insti está capada, y a veces no funciona. Entonces, Skype o Dropbox. Pero, cuando me paso cosas con mi padre, funca de fruta madre  ;D
89  Programación / Scripting / Re: [PYTHON]Ejemplo: transferir archivos por internet en: 21 Febrero 2012, 22:12 pm
Es cosa del threading, lo probé con self, claro, y no funcionaba. Busqué por internet y me salió que debía usar this. Pues hala.

Saludos!
90  Programación / Scripting / [PYTHON]Ejemplo: transferir archivos por internet en: 21 Febrero 2012, 15:15 pm
Hola! Posteo un simple script de ejemplo para mostrar el funcionamiento de los sockets y demás en Python.

El script consta de un cliente y un servidor. Está escrito en catalán, pero es perfectamente inteligible.

Cliente:
Código
  1. # enviar.py v1.2
  2. # -*- coding: cp1252 -*-
  3. # ---------------
  4. # Changelog:
  5. # + Diccionaris
  6. # + Avisos de lectura i transferencia
  7. # + Funcions de mida d'arxiu
  8.  
  9. # importamos los modulos necesarios:
  10. import socket, os
  11. # definimos el puerto de control CPORT y el puerto multimedia MPORT
  12. CPORT = 9091
  13. MPORT = 9090
  14. # una funcion para transformar un tamaño en bytes a un tamaño más fácil de leer:
  15. def midafap(mida):
  16. sufixos = [("B",2**10), ("K",2**20), ("M",2**30), ("G",2**40), ("T",2**50)]
  17. for suf, lim in sufixos:
  18. if mida > lim:
  19. continue
  20. else:
  21. return round(mida/float(lim/2**10),2).__str__()+suf
  22.  
  23. print "Enviar arxius per INTRnet!"
  24. # un diccionario, esto es por comodidad mía
  25. # pedimos dónde estamos: el instituto, casa, o solo, para probar cosas
  26. sel = raw_input("Indica el host remot(institut, casa, sol): ")
  27. insdic = {"FAPFAPFAP" : '192.168.171.12',
  28.           "FAPFAP" : '192.168.171.17',
  29.           "FAP" : '192.168.171.19'}
  30. casadic = {"SERVER" : '192.168.1.34'}
  31. soldic = {"Me" : 'localhost'}
  32. # ahora tenemos un diccionario dentro de otro:
  33. bigdic = {"institut" : insdic,
  34.           "casa" : casadic,
  35.           "sol" : soldic}
  36. final = bigdic[sel]
  37. print final
  38. # si hemos elegido "institut", nos dirá las IPs y escribimos FAPFAPFAP.
  39. sel2 = raw_input("Indica el host remot de la llista: ")
  40. HOST = final[sel2]
  41.  
  42. # el archivo en sí
  43. FILE = raw_input("Arrossega l'arxiu: ")
  44. # cambiamos comillas, para evitar errores en los archivos con espacios:
  45. FILE = FILE.replace('"', '')
  46. # creamos un socket que envía la ruta del archivo:
  47. cs = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  48. # se conecta al puerto de control:
  49. cs.connect((HOST, CPORT))
  50. # envía la ruta del archivo:
  51. cs.send("SEND " + FILE)
  52. cs.close()
  53.  
  54. # otro socket, que envía el archivo:
  55. ms = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  56. # se conecta al puerto multimedia:
  57. ms.connect((HOST, MPORT))
  58.  
  59. # abrimos el archivo para leerlo:
  60. f = open(FILE, "rb")
  61. data = f.read()
  62. f.close()
  63.  
  64. # obtenemos el tamaño del archivo, en bytes:
  65. midabytes = os.path.getsize(FILE)
  66. # usamos la función anterior para convertir el tamaño:
  67. # Archivo guarra.fap leído (682,13M)
  68. print "Arxiu ", FILE, "llegit (", str(midafap(midabytes)), ")."
  69. # enviamos los datos del archivo:
  70. ms.send(data)
  71. ms.close()
  72. # fin
  73. print "Arxiu ", FILE, "enviat (", str(midafap(midabytes)), ")."
  74. raw_input("Prem una tecla per tancar...")
  75.  

Servidor:
Código
  1. # rebre.py
  2.  
  3. # importamos módulos, unos cuantos más...
  4. import os, socket, time, string, sys, urlparse
  5. from threading import *
  6.  
  7. #------------------------------------------------------------------------
  8.  
  9. # creamos un objeto de tipo StreamHandler:
  10. class StreamHandler ( Thread ):
  11. #creamos un inicializador:
  12.    def __init__( this ):
  13.        Thread.__init__( this ) # nos referimos al objeto mismo
  14.  
  15.    def run(this):
  16.        this.process() #aquí tenemos un método que nos muestra que estamos trabajando con objetos de tipo socket.
  17.  
  18.    def bindmsock( this ):
  19.        this.msock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  20.        # enlazamos el "this" al puerto 9090 (Multimedia):
  21.        this.msock.bind(('', 9090))
  22.        this.msock.listen(1)
  23.        print '[INTR] Esperant al port 9090'
  24.  
  25.    def acceptmsock( this ):
  26.        # aceptamos la conexión...
  27.        this.mconn, this.maddr = this.msock.accept()
  28.        print '[INTR] Ieepa, es connecta', this.maddr
  29.  
  30.    def bindcsock( this ):
  31.        # enlazamos al puerto 9091 (Control):
  32.        this.csock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  33.        this.csock.bind(('', 9091))
  34.        this.csock.listen(1)
  35.        print '[Control] Esperant al port 9091'
  36.  
  37.    def acceptcsock( this ):
  38.        # aceptamos...
  39.        this.cconn, this.maddr = this.csock.accept()
  40.        print '[Control] Ieepa, es connecta', this.maddr
  41.  
  42.        while 1:
  43.            # captamos datos:
  44.            data = this.cconn.recv(1024)
  45.            if not data: break
  46.            # si los datos recibidos empiezan por SEND, captamos el nombre de archivo
  47.            if data[0:4] == "SEND": this.filename = data[5:]
  48.            print '[Control] Preparat per rebre "%s"' % this.filename
  49.            break
  50.  
  51.    def transfer( this ):
  52.        print '[INTR] Transferint dades de "%s"' % this.filename
  53.        # captamos solamente el nombre de archivo y su extensión:
  54.        nomfinal = os.path.basename(this.filename)
  55.        # lo guardamos en el directorio de Recibido
  56.        f = open("C:/INTRnet/Rebut/"+nomfinal,"wb")
  57.        # ahora, el bucle que captura datos en sí:
  58.        while 1:
  59.            data = this.mconn.recv(1024)
  60.            if not data: break
  61.            f.write(data)
  62.        f.close()
  63.  
  64.        # hemos escrito los datos en el nuevo archivo
  65.        print '[Media] Rebut "%s"' % this.filename
  66.        print '[Media] Tancant el flux de "%s"' % this.filename
  67.        os.popen("msg.exe * S'ha rebut l'arxiu "+ nomfinal)
  68.        # y ya hemos recibido el archivo!
  69.  
  70.    def close( this ):
  71.        # cerramos todos los sockets:
  72.        this.cconn.close()
  73.        this.csock.close()
  74.        this.mconn.close()
  75.        this.msock.close()
  76.  
  77.    def process( this ):
  78.        # siempre aceptamos las conexion
  79.        while 1:
  80.            this.bindcsock()
  81.            this.acceptcsock()
  82.            this.bindmsock()
  83.            this.acceptmsock()
  84.            this.transfer()
  85.            this.close()
  86.  
  87. #------------------------------------------------------------------------
  88.  
  89. # creamos un objeto StreamHandler:
  90. s = StreamHandler()
  91. # usamos el método de Thread (dentro del módulo threading) para iniciar:
  92. s.start()
  93. #fin
  94.  

Eso es todo. Funciona de maravilla en redes locales, y por IP pública o No-IP también ;)

El problema viene en los archivos con acentos, que dan error. Haré un filtro para eliminar los carácteres.

Cualquier duda, comentad!
Páginas: 1 2 3 4 5 6 7 8 [9] 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ... 37
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines