PROGRAMACIÓN DE My-Adress (PROGRAMACIÓN)
Hola gente bonita, en esta ocasión les mostraré el código de la versión 1.0 de "My-Address".

Este es un proyecto que llevo pensando hace un tiempo pero nunca encontraba la oportunidad de realzarlo. Se trata de una aplicación CLI que recopila los siguientes datos del equipo donde se ejecuta:
- Nombre del equipo
- IP Privada
- IP Pública
- Dirección MAC del equipo
Posteriormente, estos datos recopilados son enviados a una base de datos.
Este proyecto está pensado para ser ejecutado desde un pendrive o medio extraíble, así se sabe con certeza donde y cuando estuvo, por ejemplo, nuestro pendrive. Para este motivo, luego de terminar de realizar la programación, empaqueté el archivo en formato .exe, esto con una librería llamada "py2exe".
Posteriormente, el ejecutable debe ser copiado en la raíz del pendrive y luego debe configurarse un autorun para que el ejecutable se ejecute al conectar el pendrive al PC.
Hay 2 versiones del programa. Una para ser ejecutada automáticamente y la otra para ser ejecutada manualmente (los cambios son mínimos, la mayor diferencia es que la versión para ser usada automáticamente no muestra los datos en la pantalla y los envía directamente a la base de datos).
- socket
- urllib
- mysql.connector
- getmac
- time
- subprocess
- OS
- py2exe
import socket import urllib.request import mysql.connector import getmac import time import subprocess import os #permite manipular la cmd def cmd(commando): subprocess.run(commando, shell=True) cmd("title MyAddress") cmd("cls") print(""" ███╗░░░███╗██╗░░░██╗░█████╗░██████╗░██████╗░██████╗░███████╗░██████╗░██████╗ ████╗░████║╚██╗░██╔╝██╔══██╗██╔══██╗██╔══██╗██╔══██╗██╔════╝██╔════╝██╔════╝ ██╔████╔██║░╚████╔╝░███████║██║░░██║██║░░██║██████╔╝█████╗░░╚█████╗░╚█████╗░ ██║╚██╔╝██║░░╚██╔╝░░██╔══██║██║░░██║██║░░██║██╔══██╗██╔══╝░░░╚═══██╗░╚═══██╗ ██║░╚═╝░██║░░░██║░░░██║░░██║██████╔╝██████╔╝██║░░██║███████╗██████╔╝██████╔╝ ╚═╝░░░░░╚═╝░░░╚═╝░░░╚═╝░░╚═╝╚═════╝░╚═════╝░╚═╝░░╚═╝╚══════╝╚═════╝░╚═════╝░ ver 1.0\n""") #Nombre del equipo donde se está ejecutando MYADRESS nombre_equipo_raiz = "Pendrive 1" #Obtiene la ruta desde donde se está ejeceutando el script ruta_ejecucucion= (os.path.abspath(os.getcwd())) #Obtención del nombre del equipo nombre_equipo = os.getenv("COMPUTERNAME") print("Nombre del equipo:", nombre_equipo) #obtencion de la IP PRIVADA ip_privada = socket.gethostbyname(socket.gethostname()) print("IP PRIVADA: ", ip_privada) str(ip_privada) #obtencion de la IP PUBLICA #Envía una petición a la página dydns y permite obtener la ip pública lista = "0123456789." ip_publica = "" dato=urllib.request.urlopen("http://checkip.dyndns.org").read() for x in str(dato): if x in lista: ip_publica += x str(ip_publica) print("IP PUBLICA: ",ip_publica) #Obtención del MAC mac = (getmac.get_mac_address()) print("Dirección MAC:", mac) #Obtención de la fecha y hora fecha = (time.strftime("%y-%m-%d")) hora = time.strftime("%H:%M:%S") fecha_hora = fecha + " " + hora print("Fecha y hora del registro:", fecha_hora) bucle = True while bucle == True: try: #conexion con la base de datos db = mysql.connector.connect( host="131.108.140.136", user="David Vega", password="MaincrA1234", database="my_usb" ) #Registro en la base de datos cursor = db.cursor() cursor.execute("INSERT INTO registro (nombre_equipo_raiz, nombre_equipo, ip_publica, ip_privada, mac, ruta_ejecucución, fecha_hora) VALUES (%s,%s,%s,%s,%s,%s,%s)", (nombre_equipo_raiz, nombre_equipo, ip_publica, ip_privada, mac, ruta_ejecucucion, fecha_hora)) db.commit() #Cierre de la base de datos cursor.close() db.close() bucle = False except: opcion = input("No se ha podido conectar con la base de datos, reintentar? s/n:") opcion = opcion.upper() if input == "S": bucle = True else: bucle = False input("Pulse ENTER para salir")
Probablemente en el futuro, saque más versiones de esta herramienta.
Dankon por legu ĉi eniri. Ĝis la revido :3.
Comentarios
Publicar un comentario