Ir para conteúdo
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

 

Editado por edmin
incluir o arquivo de ips

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Marcosvn
      Quero desenvolver um site semelhante a esse: https://www.catalogosofertas.com.br/ 
       
      No qual eles enviam diversas ofertas e encartes recentes de lojas em geral e supermercados. Eles possuem muito conteúdo que são atualizados frequentemente, no entanto, muitos dos supermercados, por exemplo, não possuem os folhetos de cada cidade em seus sites. De modo que pudesse criar um scraper pra ficar acompanhando as atualizações. 
       
      Ao mesmo tempo não imagino que eles tenha muitos funcionários fazendo isso, pois são muitas lojas e supermercados que o encarte vence em alguns dias. Oq me faz pensar que manualmente é inviável manter as atualizações.
       
      Queria saber de vocês, que tem experiência com a área ou mesmo que já tenham trabalhado em projetos semelhantes, como posso me organizar para fazer isso acontecer assim como no site de exemplo: https://www.catalogosofertas.com.br/ 
       
      Como posso fazer isso ? Realmente teria q ficar criando diversos scraper e códigos pra ficar acompanhando os encartes de cada loja e supermercado?
       
      Qual dica, sugestão , orientação poderá me ser muito útil, pois estou confuso sobre como fazer isso acontecer.
    • Por Bruno Soares Slva
      Boa tarde pessoal,
      Estou com problemas para criar um robô. O mesmo esta dando na linha em negrito. Segue abaixo o erro que está aparecendo. Alguma informação. Estou usando o VSCode versão: 1.73.0, Python versão 3.8.0, chromedriver versão 18 (antepenúltima). Segue código e erro abaixo:
       
      Erro mostrado: 
       
      Windows PowerShell
      Copyright (C) Microsoft Corporation. Todos os direitos reservados.        
      Experimente a nova plataforma cruzada PowerShell https://aka.ms/pscore6   
      PS C:\Users\soare\Documents\Estudos\Python\projectCourse>  & 'C:\Users\soare\AppData\Local\Programs\Python\Python38\python.exe' 'c:\Users\soare\.vscode\extensions\ms-python.python-2022.16.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher' '52080' '--' 'c:\Users\soare\Documents\Estudos\Python\projectCourse\projeto1\roboweb1.py'
      Traceback (most recent call last):
        File "C:\Users\soare\AppData\Local\Programs\Python\Python38\lib\runpy.py", line 192, in _run_module_as_main
          return _run_code(code, main_globals, None,
        File "C:\Users\soare\AppData\Local\Programs\Python\Python38\lib\runpy.py", line 85, in _run_code
          exec(code, run_globals)
        File "c:\Users\soare\.vscode\extensions\ms-python.python-2022.16.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher/../..\debugpy\__main__.py", line 39, in <module>
          cli.main()
        File "c:\Users\soare\.vscode\extensions\ms-python.python-2022.16.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher/../..\debugpy/..\debugpy\server\cli.py", line 430, in main
          run()
        File "c:\Users\soare\.vscode\extensions\ms-python.python-2022.16.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher/../..\debugpy/..\debugpy\server\cli.py", line 284, in run_file
          runpy.run_path(target, run_name="__main__")
      PS C:\Users\soare\Documents\Estudos\Python\projectCourse>  c:; cd 'c:\Users\soare\Documents\Estudos\Python\projectCourse'; & 'C:\Users\soare\AppData\Local\Programs\Python\Python38\python.exe' 'c:\Users\soare\.vscode\extensions\ms-python.python-2022.16.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher' '52168' '--' 'c:\Users\soare\Documents\Estudos\Python\projectCourse\projeto1\roboweb1.py' 
      Traceback (most recent call last):
        File "C:\Users\soare\AppData\Local\Programs\Python\Python38\lib\runpy.py", line 192, in _run_module_as_main
          return _run_code(code, main_globals, None,
        File "C:\Users\soare\AppData\Local\Programs\Python\Python38\lib\runpy.py", line 85, in _run_code
          exec(code, run_globals)
        File "c:\Users\soare\.vscode\extensions\ms-python.python-2022.16.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher/../..\debugpy\__main__.py", line 39, in <module>
          cli.main()
        File "c:\Users\soare\.vscode\extensions\ms-python.python-2022.16.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher/../..\debugpy/..\debugpy\server\cli.py", line 430, in main
          run()
        File "c:\Users\soare\.vscode\extensions\ms-python.python-2022.16.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher/../..\debugpy/..\debugpy\server\cli.py", line 284, in run_file
          runpy.run_path(target, run_name="__main__")
        File "c:\Users\soare\.vscode\extensions\ms-python.python-2022.16.1\pythonFiles\lib\python\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_runpy.py", line 320, in run_path
          code, fname = _get_code_from_file(run_name, path_name)
        File "c:\Users\soare\.vscode\extensions\ms-python.python-2022.16.1\pythonFiles\lib\python\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_runpy.py", line 294, in _get_code_from_file
          code = compile(f.read(), fname, 'exec')
        File "c:\Users\soare\Documents\Estudos\Python\projectCourse\projeto1\roboweb1.py", line 17
          driver = webdriver.Chrome('C:\Users\soare\Documents\Estudos\Python\chromedriver', options=options)
                                    ^
      SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
      PS C:\Users\soare\Documents\Estudos\Python\projectCourse> 
       
       
      Obsrvação: 
      O erro está caindo nesta linha
      driver = webdriver.Chrome('C:\Users\soare\Documents\Estudos\Python\chromedriver', options=options)
       
       
       
      Codigo:
          from selenium import webdriver from selenium.webdriver.common.keys import Keys import time   options = webdriver.ChromeOptions() options.add_argument('--disable-logging') options.add_argument('--log-level=3')     driver = webdriver.Chrome('C:\Users\soare\Documents\Estudos\Python\chromedriver', options=options) driver.get("https://registro.br/")   pesquisa = driver.find_elements_by_id('is-avail-field') pesquisa.clear() pesquisa.send_keys('roboscompython.com.br') pesquisa.send_keys(Keys.RETURN)   time.sleep(8) driver.close()

         
       
       
       
       
       
       
       
       
       
    • Por Rafael Castelhano
      Boa tarde,
       
      Estou tentando criar uma imagem dinamicamente por javascript e carregá-la no input do formulário, apesar da imagem ser gerada corretamente, ao validar o formulário no python é retornado um erro alegando que o arquivo de imagem é inválido ou está corrompido.
       
      Segue gist com o código:
      https://gist.github.com/castelhano/bd72947e13421606453798bbf219cc74
    • Por Descomplica Consultoria
      Oi Pessoal, preciso de ajuda com um portfolio academico
    • Por 4Unknow
      Bom dia comunidade Imasters.

      Venho aqui tratar de um problema dúvida que estou tendo com um layout que estou tentando usar o formulário php dele.
      Quando clico em enviar ele me enviar para um arquivo .php  (assets/vendor/simple-forms/sendmail.php)

      Ele não envia o e-mail, acredito que deveria aparecer uma mensagem que o contato foi enviado corretamente.
      Vou deixar os arquivos aqui em anexo quem puder me ajudar nessa, ficaria muito grato.
       
      Link Website (wetransfer.com)
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.