Sintaxis: SegSoc.py <codigo>
- <codigo> debe ser un numero de seguridad social de 10 (sin digitos de control) o 12 caracteres.
- En caso de omitir los numeros de control se calcularan automaticamente.
Ejemplos:
SegSoc.py 281265347455
SegSoc.py 281265347455
SegSoc.py 458254827873
Ejemplo de uso:
D:\>SegSoc.py 3503265487
El numero de seguridad social 350326548723 es valido (Provincia : Las Palmas).
D:\>SegSoc.py 281265347455
El numero de seguridad social 281265347455 es valido (Provincia : Madrid).
D:\>SegSoc.py 458254827873
El numero de seguridad social 458254827873 es valido (Provincia : Toledo).
# ******************************************
# Autor : khyv123
# Fecha de creacion : 23/07/11
# Creado para : www.underc0de.org
# ******************************************
import sys
def sintaxis():
print '\n Sintaxis: SegSoc.py <codigo>'
print '\n- <codigo> debe ser un numero de seguridad social de 10 (sin digitos de control) o 12 caracteres.'
print '- En caso de omitir los numeros de control se calcularan automaticamente.'
print '\n Ejemplos:'
print '\tSegSoc.py 3503265487'
print '\tSegSoc.py 281265347455'
print '\tSegSoc.py 458254827873'
def comp(num):
return filter(lambda x:ord(x)<48 or ord(x)>57,num)=='' and (len(num)==12 or len(num)==10)
if len(sys.argv)==2 and comp(sys.argv[1])==True:
dic={1:'Alava',2:'Albacete',3:'Alicante',4:'Almeria',5:'Avila',6:'Badajoz',7:'Islas Baleares',8:'Barcelona',9:'Burgos',10:'Caceres',11:'Cadiz',12:'Castellon',13:'Ciudad Real',14:'Cordoba',15:'La Coruna',16:'Cuenca',17:'Girona',18:'Granada',19:'Guadalajara',20:'Guipuzcoa',21:'Huelva',22:'Huesca',23:'Jaen',24:'Leon',25:'Lleida',26:'La Rioja',27:'Lugo',28:'Madrid',29:'Malaga',30:'Murcia',31:'Navarra',32:'Ourense',33:'Asturias',34:'Palencia',35:'Las Palmas',36:'Pontevedra',37:'Salamanca',38:'Santa Cruz de Tenerife',39:'Cantabria',40:'Segovia',41:'Sevilla',42:'Soria',43:'Tarragona',44:'Teruel',45:'Toledo',46:'Valencia',47:'Valladolid',48:'Vizcaya',49:'Zamora',50:'Zaragoza',51:'Ceuta',52:'Melilla'}
num=sys.argv[1]
a=int(num[0:2])
b=int(num[2:10])
prv=dic[a]
cc=((b<10000000) and (b+a*10000000) or int('%d%d'%(a,b)))%97
if len(num)==10:
c=cc
num=num+str(c)
else:
c=int(num[10:12])
if cc==c:
sys.exit('\nEl numero de seguridad social %s es valido (Provincia : %s).'%(num,prv))
else:
sys.exit('\nNumero de suguriad social %s no es valido.'%num)
else:
sintaxis()