Pular para o conteúdo principal

Flask Para Redes de Computadores Basico

Olá Humanos, estou em Cuiaba, esperando meu avião para SP, sim !! vou para Campus Partty !!!!
Estou apanhando com uma codigo que fiquei devendo para um amigo aqui segue a primeira parte onde uso flask (MicroFrameWork web) para me mostrar informações sobre rede IP,MASK, e ping,
pensei que seria um pouco simples porem retornei a estudar para analizar como funcionaria flask com bibliotecas conhecidas para trabalhar com redes, EX: pyping, ok que chega de rodeios segue o codigo de como essa operação foi terminada em um aeroporto super quente ¬__¬


from flask import Flask,render_template # importamos de dentro da biblioteca os metodos Flask e render_template
import networktools        # 2  Minha Biblioteca que vou disponibilizar quando ela tiver com um codigo fofinho é legivel kkkk
import pyping # 3  Essa bibiblioteca so trampa com ping, no python quando for executar o codigo redo um sudo na frente do script, para dar permição de ping ue

app = Flask(__name__)

@app.route("/")
def index():
    me = networktools.network_tools("wlan0").interface()  # 4 rodo a minha lib para falar que quero usar a placa wlan0 e que quero que me de as interfaces ou seje informações em lista

    ip = me[1] # aqui ela me da meu ip 

    r = pyping.ping(ip) # 5 aqui rodo um ping em cima dela 

    if  r.max_rtt and r.min_rtt and r.avg_rtt: #6  Com o ping realizado uso as informações disponiveis para validar se esta vivo ou não, se tdos os valores derem 00000, fala que ta offiline, caso contrario esta online 
      status = "Online"
    else:
      status = "Offline"

    msg = {
    "title":"Monstrar Informations of Rede",
    "ip":me[1],
    "mask":me[2],
    "target":ip,
    "status":status
    }   # 7  salvo as informações em um dicionario simples titulando em strings e referenciando com variaveis ja obtidas, do pyping e do networktools

    return render_template("index.html",**msg)  # 8 mando rodar o template index, com arguimentos dentro de msg

if __name__ == "__main__":
app.run(host="0.0.0.0",port=80,debug=True) # 9 sim habilito o debug para ver o que da errado ¬_¬

Ok, neh, agora vamos entender como esse codigo funciona, primeiramente devo informar que a lib 
networktools é uma lib minha que vou disponibilizar logo mais, com mais detalhes sobre ela, não disponibilizo ela por que foi escrita nas cochas e ta feia  ¬_¬, quando tiver fofinha eu publico aqui com um post porem, o que devemos usar dela nada mais e do que informação que pode ser acessada por qualquer outra lib que trabalhe com redes em low level para indentificar placa e interfaces.

Então não termina por aqui por que temos ainda o codigo html que vai rodar em cima da função render_template, segue o codigo abaixo


<html>

 <title>Mostrar IP</title>

 <h1>{{ title }} </h1>

    <br>IP Local: {{ ip }}</br>
    <br>MASK: {{ mask }} </br>
    <br>Target: {{ target }}<br>
    <br>Status Target: {{ status }}</br>

</html>

Quando referenciamos o no codigo python sobre o dicionario 
msg = {
"title":"Eu sou um titutlo"}
Usamos essa referencia no html para marcar que estamos referenciamos ele a uma informação que deve mostrar e o mesmo para referencia ip,mask,target,status.

Com isso obtemos as informações basicas de rede em uma pagina web ^__^.

PS: a cadeias de arquivos deve ficar no modelo onde você deve ter uma pasta chamada templates e dentro desta tenha o index.html, fora dela o arquivo main.py que com o render_template acessara sua pasta e rodara o que você definir no codigo dele.

THe end. 

Comentários

Postagens mais visitadas deste blog

Introdução ao Intel Edison: First Hello Word in Intel Edison

Introdução ao Intel Edison Olá Humanos hoje descidi que iria fazer um post sobre Intel Edison é mostrar um blink/HelloWord usando essa plataforma incrivel ^_^, sabe ? antes de codarmos em si, vamos ver 2 pontos simples, Software e Hardware. Software O.S: primeiro ! ele não usa um OS, ele usa uma build para construir OS, um projeto chamado Yoct, oque ser build ? Pense em um pacote para construir um sistema é pronto ^_^, simples porem tem uma documentação e um pacote completo no link https://www.yoctoproject.org/ Bibliotecas: Inicialmente trabalhamos com a libmraa, fornece uma PWM, GPIO, ADC, e outras interfaces para acesso mais baixo a componentes complexos como sensores e coisas legais. OBS: usamos API python para trabalhar com ela Hardware  Essa e intel Brekout o Edison é apenas o ship pegueno no canto esquerdo da imagem, uma arquitetura baseada no arduino porem com processador e uma microproscessador, bom basicamente é isso, porem o que chama atenção é que ele e um co...

Redirecionamento de Porta usando ngrok (Port Forward with ngrok) SSH

Olá Humanos, estou no pensionato e aqui não tenho acesso ao roteador para fazer um redirencionamento de porta digno affs ¬__¬, sim pensei em Hackear rsrsrs, porem minha preguiça minha preguiça não deixa hauhauha, então encontrei uma ferramenta bem legal chamada ngrok que faz com que eu possa acessar remotamente meu servidor local para brincar com IoT. Instalação e ngrok  link: https://ngrok.com/ Para se cadastrar é bem simples basta logar com conta sua conta do git ou google depois faça download e na https://dashboard.ngrok.com/auth na aba auth pegue seu authtoken e valide no terminal # unzip ngrok-stable-linux-amd64.zip # ./ngrok authtoken <YOUR AUTHTOKEN> Instalando SSH no seu computador  Bom se você usa Ubuntu basta rodar  comando  # apt-get install openssh-server Para testar se o serviço digite  # service ssh status Iniciando SSH no Ngrok Rode o ngrok em protocolo tcp na porta 22  # ./ngrok tcp 22 ...

Usando IDE arduino para programar nodemcu(esp-12)

Olá primeiramente vamos começar esse tutorial com a IDE do arduino na versão mais atual minha versão é 1.6.8, primeiramente vamos abrir o IDE arduino Depois vamos em arquivo e clicamos na aba preferencias é em "Urls adicionais de gerenciadores de placas colamos o seguinte Link( http://arduino.esp8266.com/stable/package_esp8266com_index.json  ) depois clique em OK é espera fazer update.  Depois quando a aba se fechar, vá no menu Ferramentas >>> Placas >>> Gerenciador de Placas rola a aba para o final e clique em Instalar ! Quando estiver instalado é so fechar ! na Aba Ferramentas >>> Placas >>> Selecionar sua placa nodemcu ou generic esp8266 ! Simples neh ! Referencia-a: http://pedrominatel.com.br/arduino/como-utilizar-o-esp8266-com-a-ide-arduino-instalando-o-modulo/