Redes informáticas es un tema importante y para comprender los conceptos, se necesita la aplicación práctica de los conceptos. En este artículo en particular, veremos cómo crear una aplicación simple para compartir archivos usando Python. Un servidor web HTTP es un software que comprende URL ( dirección web ) y HTTP ( el protocolo utilizado para ver páginas web ). Python tiene varios paquetes que son una colección de módulos. Y tiene varios servidores integrados. Los módulos utilizados en este proyecto son:
- El HTTPServer es un servidor de socket , que crea y escucha en el socket HTTP.
- Los módulos socketserver simplifican la tarea de escribir servidores de red.
- El módulo webbrowser nos proporciona una interfaz de alto nivel para permitir y mostrar documentos basados en la Web, simplemente llamando a la función open().
- El módulo pyqrcode se utiliza para generar código QR en solo dos líneas de código.
- El módulo OS ayuda a interactuar con el sistema operativo. Se utiliza para abrir archivos, manipular rutas y leer todas las líneas de todos los archivos en la línea de comandos.
- PyPNG permite leer y escribir archivos de imagen PNG utilizando Python puro
Enfoque paso a paso:
- Instalar módulos de terceros:
pip install pyqrcode pip install pypng
- Instale las dependencias usando pip install en la línea de comandos.
- Importación de módulos necesarios:
- http.server y socketserver: Para alojar en el navegador.
- pyqrcode : Para generar código QR.
- png: Para convertir el QRCode en un archivo png.
- OS: Para interactuar con el Sistema Operativo.
- Asignar puerto y nombre del usuario.
- Encuentre la dirección IP de la PC y conviértala en un código QR.
- Cree la solicitud HTTP.
- Muestra el código QR en el navegador.
Implementación del enfoque anterior:
Python3
# import necessary modules # for implementing the HTTP Web servers import http.server # provides access to the BSD socket interface import socket # a framework for network servers import socketserver # to display a Web-based documents to users import webbrowser # to generate qrcode import pyqrcode from pyqrcode import QRCode # convert into png format import png # to access operating system control import os # assigning the appropriate port value PORT = 8010 # this finds the name of the computer user os.environ['USERPROFILE'] # changing the directory to access the files desktop # with the help of os module desktop = os.path.join(os.path.join(os.environ['USERPROFILE']), 'OneDrive') os.chdir(desktop) # creating a http request Handler = http.server.SimpleHTTPRequestHandler # returns, host name of the system under # which Python interpreter is executed hostname = socket.gethostname() # finding the IP address of the PC s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.connect(("8.8.8.8", 80)) IP = "http://" + s.getsockname()[0] + ":" + str(PORT) link = IP # converting the IP address into the form of a QRcode # with the help of pyqrcode module # converts the IP address into a Qrcode url = pyqrcode.create(link) # saves the Qrcode inform of svg url.svg("myqr.svg", scale=8) # opens the Qrcode image in the web browser webbrowser.open('myqr.svg') # Creating the HTTP request and serving the # folder in the PORT 8010,and the pyqrcode is generated # continuous stream of data between client and server with socketserver.TCPServer(("", PORT), Handler) as httpd: print("serving at port", PORT) print("Type this in your Browser", IP) print("or Use the QRCode") httpd.serve_forever()
Producción:
- Abra el archivo python que tiene el código anterior en la PC.
- Esto generará un código QR.
- Escanee el código QR o escriba la dirección IP que se muestra en el shell de python en su navegador móvil.
- Comparta los archivos con facilidad escaneando el código QR que se genera y obtenga acceso a los archivos en la PC, desde el navegador móvil.
Demostración:
¿Por qué Puerto 8010?
El puerto TCP 8010 utiliza un protocolo definido para comunicarse según la aplicación. Un protocolo es un conjunto de reglas formalizadas que explica cómo se comunican los datos a través de una red. Esto está protegido y no está infectado por virus/troyanos.
Explicación:
- El código encuentra el nombre del PERFIL DE USUARIO a través del módulo OS . Y cambia el directorio para acceder a los archivos en el escritorio.
- Encuentra el nombre de host para servir el archivo en un puerto particular para compartir de forma segura.
- Luego encuentra la dirección IP del sistema para que podamos conectar un dispositivo en particular.
- La dirección IP se convierte en forma de código QR utilizando el módulo pyqrcode para facilitar su uso.
- La imagen generada se aloja en un navegador web.
- Una vez que el dispositivo se conecta a la misma red, o escanea el código QR o escribe la dirección IP, puede acceder a los archivos del sistema.