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ú

Mensajes - winnipu

#1
Gracias engel lex, probare port forwading a la ip externa.
Entiendo lo del nat porque en una lan todos los equipos conectados a ese router tendran la misma ip publica, y de algun modo hay que saber a que equipo redirigir los paquetes. Gracias.
#2
Redes / Re: Conexión remota
31 Mayo 2017, 13:19 PM
teamviewer es muy bueno como comentan.
Otras opciones:
vnc,ultra-vnc, radmin...
#3
Vereis tengo una duda. Imaginad una red de una empresa, dentro de ella varios pcs conectados al mismo router (cada equipo con su ip privada dentro de la lan) y una unica ip publica de salida comun para todos ellos. La pregunta seria, si es posible conectarse desde el exterior a uno de los equipos de esa red con algun software tipo vnc o similar. Se que es posible crear una vpn y acceder al mismo, pero la duda en este caso es si se podria acceder desde el exterior a un pc concreto de esa red. Teniendo en cuenta que el router de esa empresa tiene un firewall que bloquea conexiones entrantes. No-Ip serviria?
#4
Scripting / Re: acceder a array de objetos
4 Enero 2017, 17:19 PM
Me autorespondo, cuando imprimo en la ultima linea de codigo, estoy imprimiendo la referencia al objeto. Para imprimir el objeto debo usar la funcion mostrarCarta():

for carta in cartas:
    carta.MostrarCarta()
   
#5
Scripting / acceder a array de objetos
4 Enero 2017, 15:17 PM
Hola, estoy intentando crear una baraja española en python y que me la muestre en pantalla. He creado dos clases para ello. Cuando intento mostrar el array de cartas que almacena objetos de tipo carta me muestra por pantalla las direcciones de memoria de dichos objetos, pero no los objetos en si. No se que estoy haciendo mal, os pego codigo:

class Carta:
  def __init__(self,palo,valor):
    self.palo=palo
    self.valor=valor
  def mostrarCarta(self):
    print(str(self.palo) + str(self.valor))
   
class Mazo:
  cartas=[]
  triunfo=["Oros","Copas","Espadas","Bastos"]
  valor=["As","Dos","Tres","Cuatro","Cinco","Seis","Siete","Sota","Caballo","Rey"]
  for i in triunfo:
    for j in valor:
      cartas.append(Carta(i,j))
     
  for carta in cartas:
    print(carta)
   
Mazo()
#6
Scripting / Re: python wifi macs bajo windows
22 Julio 2016, 08:20 AM
Como bien dices al ser cmd.stdout me genera este error:

l = map(lambda x: x.strip(), line.strip().split(":"))
TypeError: 'str' does not support the buffer interface

Trato de hacer un cast a map pero si lo hago me genera el mismo error. Realmente no controlo la funcion map y eso es lo que me esta generando el problema.



#7
Scripting / python wifi macs bajo windows
21 Julio 2016, 10:20 AM
Hola, alguien sabe que librerias hay que usar con python y corriendo bajo windows para ver las macs de los router wifi que hay en un determinado lugar?
Mi intencion es correr un script python que me muestre el nombre de las redes wifi, y las mac de sus routers que hay al alcance de mi antena.

He encontrado este codigo para python 2.7 pero quisiera actualizarlo a 3.4 y no se como hacerlo. No se como solventar lo de map para 3.4

import subprocess

ssid = {}
ssids = []
cmd = subprocess.Popen('netsh wlan show networks mode=BSSID',
                       shell=True, stdout=subprocess.PIPE)
for line in cmd.stdout:
    l = map(lambda x: x.strip(), line.strip().split(":"))
    if len(l) > 1:
        key, value = l[0], l[1]
        if key.startswith("SSID"):
            key = "name"
            if ssid:
                ssids.append(ssid)
            ssid = {}
            ssid[key] = value
        if "name" in ssid:
            ssid[key] = value
ssids.append(ssid)

# example of how to use ssids, list of ssid dictionaries
for ssid in ssids:
    print ssid["name"], ssid["Encryption"]
#8
Scripting / Re: cmd ejecucion def con *args
20 Abril 2016, 20:34 PM
Gracias tincopasan, busque solventar el problema de otro modo, pero tienes razon, tecnicamente lo que hacia yo no era pasar argumentos en linea de comandos, sino pedir datos por consola.
Tu codigo me ha ayudado a entender lo que decia engel lex, realmente desconocia el funcionamiento de sys.argv, solo habia leido sobre *args y *kwargs. Disculpa por mi falta de conocimientos.
Solo una duda mas cuando codeas estas lineas:
argu= sys.argv
argu= argu[1:]
Sobreentiendo que sys.argv no lista sus miembros desde la posicion 0 como las listas, sino que comienza en la posicion 1?
Voy a leer sobre sys.argv porque la verdad es que es totalmente novedoso para mi. Gracias por encauzarme del modo correcto.

Edito: Leyendo sobre el tema he visto porque usas la posicion 1 de sys.argv como si fuese el primer parametro en vez de usar el cero. Por lo que he visto el primer valor del array (sys.argv[0]) es el nombre del archivo (script.py) y a continuación, sys.argv[1] contiene el primer parámetro, en este caso por ejemplo si los argumentos introducidos son 1 2 3 4 5 6 sys.argv[1] equivaldria al string 1, sys.argv[2] al string 2 y asi sucesivamente. Gracias de veras tincopasan y engel lex por orientarme.
#9
Scripting / Re: cmd ejecucion def con *args
20 Abril 2016, 00:09 AM
Creo que lo he solucionado mejorando el codigo y ejecutandolo desde cmd ahora si que logro ver el resultado por consola y correctamente. Pego el codigo:

lista =[]

def media(lista):
sumatorio = 0
for numero in lista:
sumatorio+=int(numero)
total=sumatorio/len(lista)
return total


while True:
x = input("Introduce un numero o pulsa 0 para terminar: ")
if x == "0":
break
else:
lista.append(x)

print ("La media ponderada de los numeros introducidos es igual a:",media(lista))
#10
Scripting / Re: cmd ejecucion def con *args
19 Abril 2016, 21:29 PM
Veras, lo que quiero es llamar desde el cmd de windows a la funcion media(*args) del programa nombreprograma.py  introduciendo si es posible los argumentos que yo quiera (una serie de numeros mas o menos grande). Todo ello desde la consola windows, para ver si me arroja el resultado en la misma consola. Es posible? O estoy intentando algo que no se puede hacer?
Perdona las dudas extrañas, estoy aprendiendo y se me ocurrio intentar lanzar un programa por consola.