Jump to content
edmin

Ajuda com código

Recommended Posts

Olá pessoal, preciso de uma ajuda como seguinte, desde já, agradeço por qualquer ajuda...

Pergunta: 

Dado um arquivo 'ips.txt' com uma lista de endereços, o programa deve dar um ping para cada ip/domínio cadastrado. A linha contendo os resultados (mínimo, máximo, média)deve ser salva em arquivo 'log_data_hora.txt'.

ips.txt

www.claro.com.br;Servidor Claro
www.colombo.com.br;Servidor Colombo
www.renner.com.br;Servidor Renner
www.gmail.com.br;Servidor Email Google
 

tenho o seguinte código:

 

import os
from datetime import datetime
def titulo(texto):
    print()
    print(texto)
    print('\033[7;97;40m-\033[m'*40)


######################################
def listar():
    print('\033[7;97;40mListagem de IPs\033[m')
    print('\033[7;97;40m=\033[m'*72)
    arq = open('ips.txt', 'r')
    num = 0
    linha = arq.readline()
    print('\033[7;97;40mNº .: IP/Dominio ...............:   Cliente/Serviço ..................: \033[m')
    while linha != '':
        num = num + 1
        partes = linha.split(';')
        print(f'\033[7;97;40m {num:3}   {partes[0]:30s}   {partes[1][:-1]}\033[m')
        linha = arq.readline()
    arq.close()
    print('\033[7;97;40m-\033[m'*72)

'''
funcao que recebe um ip como parametro
o tempo medio de resposta de um ping para este ip
ou -1, caso erro
'''

def ver_media(ip):
    dados = os.popen('ping '+ ip) # executa um comando no sistema operacional
    media = ''
    #find: retorna a posicao da string
    #(se nao encontrar retorna 0)
    for linha in dados:
        if linha.find('M‚dia') >= 0:
            posicao = linha.rfind('=')
            mediams = linha[posicao+1:]
            ms = mediams.rfind('ms')
            media = mediams[0:ms]

    if media == '':
        return -1
    else:
        return int(media)


def testar():
    titulo('\033[7;97;40mTestando IPs Cadastrados\003[m')
    print('\033[7;97;40mIP/Domínio............ Tempo(ms)\033[m')
    print('\033[7;97;40m-\033[m'*40)

    arqLog = open('logs.txt', 'a') #salva em arquivo cada teste
    arq = open('ips.txt', 'r')
    linha = arq.readline()
    while linha != '':
        partes = linha.split(';')
        tempo = ver_media(partes[0])
        funcao = ver_media(partes[1])

        agora = datetime.now()
        dia = agora.strftime('%d/%m/%Y')
        hora = agora.strftime('%H:%M:%S')
        print(f'\033[7;97;40m{partes[0]:25s} {tempo}\033[m')
        arqLog.write(partes[0]+';'+str(tempo)+';'+dia+';'+hora+'\n')

        linha = arq.readline()
    arq.close()
    arqLog.close()
####################################################


def logs():
    titulo('\033[7;97;40m         Listagem de Logs           \033[m')
    arq = open('logs.txt', 'r')
    print('\033[7;97;40mNº..: IP / Dominio............: Média (ms): Dia do accesso..: Hora..:\033[m')
    num = 0
    linha = arq.readline()

    while linha != '':
        num = num + 1
        partes = linha.split(';')
        ip = str(partes[0])
        tempo = str(partes[1])
        dia = str(partes[2])
        hora = str(partes[3])
        print(f'\033[7;97;40m{num:3d} {ip:30s} {tempo:3s}      {dia:17s} {hora} \033[m', end='')
        linha = arq.readline()
    arq.close()
    print('-'*43)
    print('\033[7;97;40m -> Se o tempo em ms, for igual a\033[m \033[1;31m-1\033[m,\033[7;97;40m\n'
          ' o host não está respondendo\033[m')
    return


######################### programa principal
while True:
    print('\033[7;97;40m=\033[m' * 43)
    print('''\033[3;30;44m#### Selecione uma Opção: ####\033[m \033[7;97;40m
    1.  Listar Ips 
    2.  Testar
    3.  Log de testes
    4.  Finalizar 
\033[m\n ''')
    print('\033[7;97;40m=\033[m' * 43)
    opcao = int(input('\033[3;30;44mDigite sua opção:\033[m '))
    if opcao == 1:
        listar()
    elif opcao == 2:
        testar()
    elif opcao == 3:
        logs()
    elif opcao == 4:
        calcula()
    elif opcao == 5:
        print('\033[1;30mPrograma Finalizado pelo Usuário!!!\n'
              '==//==//==//==//==//==//==//==//==//\033[m')
        exit()
    else:
        print('\033[1;31mOps...\n'
              ' Opção Inválida!!!\033[m')
        break

 

Edited by edmin
incluir o arquivo de ips

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Hodol
      Boa tarde, estou começando a programar e ainda não sei qual linguagem de programação eu devo iniciar. Me de uma luz, Obrigado!
    • By lucascastoria
      Procuro um profissional para desenvolver um sistema de compra em phyton.
      Interessados, favor me contatar pois explicarei melhor.
      Obrigado
    • By mtwzim
      Olá pessoal, recentemente eu venho desenvolvendo um app para pagamentos/cartões pré-pago, e estou procurando alguma empresa/api que forneça um serviço apara emissão de cartões pré-pagos (e que seja possível customizar os cartões: por a minha própria logo, etc), alguém pode me informar alguma empresa que faz isso aqui no brasil? Já encontrei soluções como stripe mas eles não oferecem esse serviço para o brasil?
    • By Rzorr
      Bom dia,
              eu tenho um  site de imóveis, sou corretor, ele está com alguns problemas na URL, comprei esse script e venho fazendo algumas alterações nele, sei o básico, cadastrar, deletar, buscar, update, mas o que acontece esse site foi construido com MVC e confesso parei de estudar PHP faz muito tempo, e não entendo nada de MVC, abaixo o código da busca e como forma o link é montado.
          No site o link fica assim: /imoveis/lista/referencia/referencia/categoria/comprar/tipo/tipo/cidade/Camboriú/bairro/bairro#busca nesse exemplo fiz uma busca pela cidade!
         Se clico no menu em vendas o link fica assim: /imoveis/lista/referencia/referencia/categoria/comprar/tipo/tipo/cidade/cidade/bairro/bairro#busca
      pessoal obrigado pela disposição em ajudar, eu to tentando resolver faz dias, mas não consigo entender a a forma como é construido.
       
      <?php class busca extends controller { public function init(){ } public function inicial(){ $referencia = $this->post('referencia'); $categoria = $this->post('categoria'); $tipo = $this->post('tipo'); $cidade = $this->post('cidade'); $bairro = $this->post('bairro'); if($referencia){ $cidade = "cidade"; $bairro = "bairro"; $tipo = "tipo"; $categoria = "categoria"; } else { $referencia = 'referencia'; if(!$categoria){ $categoria = "categoria"; } if(!$tipo){ $tipo = "tipo"; } if(!$cidade){ $cidade = "cidade"; } if(!$bairro){ $bairro = "bairro"; } } $endereco = DOMINIO."imoveis/lista/referencia/$referencia/categoria/$categoria/tipo/$tipo/cidade/$cidade/bairro/$bairro#busca"; $this->irpara("$endereco"); }  
    • By silver sanths
      #include <stdio.h> int main() { float valor_produto = 0, valor_pagamento = 0; int troco = 0; troco = valor_pagamento - valor_produto; scanf("%f", &valor_produto); scanf("%f", &valor_pagamento); if (valor_produto < valor_pagamento) { printf("100: %d", troco / 100); printf("\n50: %d", troco % 100 / 50); printf("\n2: %d", troco % 50 / 20); printf("\n10: %d", troco % 20 / 10); printf("\n5: %d", troco % 10 / 5); printf("\n2: %d", troco % 5 / 2); printf("\n1: %d", troco % 2 / 1); } return 1;
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.