Python - Monitoramento de Rede

1,508 views
Skip to first unread message

Matheus Liniglia

unread,
Apr 26, 2018, 8:17:19 AM4/26/18
to Python Brasil
Bom dia,
Estou estagiando em uma empresa, e estou querendo facilitar o meu monitoramento de equipamentos que ficam na fabrica. Pois são 25 roteadores e quero monitorar o ping deles 1 vez no mês por exemplo. Tenho feito esse monitoramento através do CMD "ping X.X.X.X -t > arquivo.txt" (Windows) ou Terminal "ping X.X.X.X  -v >> arquivo.txt" (Linux). E isso para cada maquina (Faço isso nos 25 IP's rsrs), e me ajuda muito esse monitoramento para ver a vida útil e a respostas do roteadores.


Tenho esse script abaixo: Ele já me trás o ping, só que quero que ele gere um arquivo em .txt 

Precisava desse Help, iria me ajudar muito na Empresa.

Obrigado desde já!!

"""

#!/usr/bin/python

import os, re

print("Monitoramento Parasmo\nVerificar IP")
pergunta = raw_input ("Digite o IP:")
cmd = "ping -c4 " + pergunta
r = "".join(os.popen(cmd).readlines())
print(r)

if re.search ("64 bytes from", r):
  print("Link UP")
else:
  print("Link Down")

"""

Filipe Cifali

unread,
Apr 26, 2018, 8:50:07 AM4/26/18
to python...@googlegroups.com
Oi Matheus,

Algumas possibilidades a se fazer nesse caso: uma sem modificar muito e outra modificando um pouquinho de maneira mais elaborada.

Como você está imprimindo os resultados na tela, você está enviando o resultado ao STDOUT, a saída do interpretador. O que acontece é que você pode direcionar o STDOUT para onde você quiser no Linux e no Windows exatamente como fez com o comando ping, usando o símbolo ">", assim você poderia chamar seu programa como "python monitoramento.py >> resultado.txt;

Acontece que você ainda precisa do input neste caso e precisará digitar os 25 IPs para ir testando.

A segunda é:

em python existe um módulo para leitura e escrita de arquivos chamado file [1] , você pode ler arquivos e escrever eles também no mesmo fluxo,

então imagine que você faz o script hoje e amanhã a empresa adquire mais 50 equipamentos? Ralou! Você precisaria saber cada um deles pra ir testando e isso tomaria um tempo demasiado, fora as chances de acontecer erros de digitação...

Então vamos usar um pouquinho mais da lógica e pensar o seguinte:

o script precisa fazer o que:

- receber um input de dados
- processar eles
- retornar um output aproprioado

Como que seria a maneira mais fácil de ter todos os IPs a serem monitorados de uma vez para o script ler? Tendo um inventário! E nesse caso, pode ser um inventario.txt mesmo que o monitoramento.py vai ler e ir processando linha a linha.

Então vamos pensar na entrada do programa de maneira escrita mesmo:

- iniciar o programa
- ler um arquivo de inventário ou receber por argumento (seja uma lista ou um local de arquivo)
- para cada uma das linhas:
    - testar
    - armazenar o resultado

É importante perceber também que, o resultado, em um processo mais automatizado precisa ser claro, no seu script atual você imprime somente "Link UP/Link Down", o que pode ficar bem confuso quando se tem vários registros, então sugiro escrever uma linha tipo esta:

ANO-MES-DIA HORA-MINUTO-SEGUND - IP - RESULTADO

Que resultaria em um padrão como este:

2018-04-26 09:46:51 - 192.168.0.3 - Link Up
2018-04-26 09:46:53 - 192.168.0.5 - Link Up
2018-04-26 09:47:21 - 192.168.0.21 - Link Down

Onde será mais fácil identificar os resultados depois.

Em relação a rede, é importante lembrar que também podem existir firewalls barrando ICMP e que existem timeouts para tratar eles.

Então você teria um script estilo:

monitoramento.py -i inventario.txt >> monitoramento.log
--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasil+unsubscribe@googlegroups.com
---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasil+unsubscribe@googlegroups.com.
Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/python-brasil/9258f268-4b2a-45a7-a45e-47cdcf684fbd%40googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--
[ ]'s

Filipe Cifali Stangler

Matheus Liniglia

unread,
Apr 26, 2018, 9:00:41 AM4/26/18
to python...@googlegroups.com
Muito obrigado, de verdade Felipe!!
Estou bem no começo de Python, acho que isso seria ao poucos esse aperfeitamento no programa. Mais suas ideias foram fantasticas, e era o que eu tava pensando aqui rs.

Precisava de um help em questão da hora de salva. Eu consegui algo aqui pesquisando. Só que no caso eu teria que colocar o nome do arquivo, e não seria isso que quero, queria que já jogasse o "IP" que foi digitado como o nome do arquivo.txt, teria como ele já puxa o que foi digitado no raw_input? 
Só que tem um porém, é inserido "." e sabemos que não vai rolar kkkk

Matheus Liniglia

unread,
Apr 26, 2018, 9:01:00 AM4/26/18
to Python Brasil
Muito obrigado, de verdade Felipe!!
Estou bem no começo de Python, acho que isso seria ao poucos esse aperfeitamento no programa. Mais suas ideias foram fantasticas, e era o que eu tava pensando aqui rs.

Precisava de um help em questão da hora de salva. Eu consegui algo aqui pesquisando. Só que no caso eu teria que colocar o nome do arquivo, e não seria isso que quero, queria que já jogasse o "IP" que foi digitado como o nome do arquivo.txt, teria como ele já puxa o que foi digitado no raw_input? 
Só que tem um porém, é inserido "." e sabemos que não vai rolar kkkk

Filipe Cifali

unread,
Apr 26, 2018, 9:22:31 AM4/26/18
to python...@googlegroups.com

Matheus,

nesse caso você consegue com a segunda situação.

Vamos esboçar mais um pouco o laço principal:

Se você tiver um arquivo com as linhas
127.0.0.1
127.0.0.2
127.0.0.3

with open file inventario.txt as f
    for line in f.readlines():
        res = test_icmp_response(line)
        with open file ''.join([line, '.txt']) as o
            o.write(res)

Basicamente para cada linha no inventario, você vai iterar sobre elas uma criação de arquivo com resultado, então ao final da execução você vai ter um arquivo .txt para cada equipamento testado.

Entretando essa abordagem tem alguns porens!

Você vai ter uma lista ENORME de arquivos para verificar o resultado depois (inclusive se remover IPs da lista de inventario, eles vão continuar a existir pois o código não estará fazendo a limpeza por não saber que eles foram removidos).

Outra coisa é que isso acaba resolvendo o problema original e gerando outro problema, agora você vai ter um monte de relatórios e ter de verificar um por um hehe.

Se você está iniciando melhor ainda, divirta-se aprendendo e tente sempre resolver os problemas automatizando tudo :)


Para mais opções, acesse https://groups.google.com/d/optout.

Matheus Liniglia

unread,
Apr 26, 2018, 9:27:50 AM4/26/18
to python...@googlegroups.com
conseguir resolver com isso: 

import os, re

print("Monitoramento Parasmo\nVerificar IP")
pergunta = raw_input ("Digite o IP:")
cmd = "ping -c4 " + pergunta
r = "".join(os.popen(cmd).readlines())
print(r)

if re.search ("64 bytes from", r):
  print("Link UP")
else:
  print("Link Down")

fileobj = open(pergunta +".txt","w")
fileobj.write(cmd)
fileobj.write(pergunta)
fileobj.write(r)
fileobj.close()




- O que eu queria agora, que ele me pedisse os IP's e fizesse o procedimento de uma vez com todos Ip's. seria facil?

Matheus Liniglia

unread,
Apr 26, 2018, 9:33:06 AM4/26/18
to python...@googlegroups.com
Filipe, uma coisa que acabei não citando que seria até importante é que esses 25 equipamentos. Já tem seus IP fixos. então mesmo com a alteração do equipamento, não haverá mudança no IP, pois eles são configurados com o CLP, então tem que estar tudo vinculado. Acho que com isso facilitaria meu monitoramento, pois só preciso por enquanto nesse Setor especifico que é os equipamentos da Produção e que ficam meus roteadores ligados nas CLP, enviando dados da produção da peça.

Thomaz de Oliveira dos Reis

unread,
Apr 26, 2018, 9:35:04 AM4/26/18
to python...@googlegroups.com
Sei que vocês foram com a ideia de trabalhar com arquivos diretamente no Python, mas não custa lembrar que você também pode redirecionar a entrada usando "<" ou pipe "|", como se faz com ">"

por exemplo:
echo 192.168.1.1 | python meuscript.py > saida.txt
ou ainda, se quiser a entrada de um arquivo:
python meuscript.py < ips.txt >> saida.txt

Dessa forma você não iria precisar digitar os ips como mostrou o colega Filipe na primeira opção.


---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.

Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/python-brasil/9258f268-4b2a-45a7-a45e-47cdcf684fbd%40googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.
--
[ ]'s

Filipe Cifali Stangler

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.

Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.

Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.



--
[ ]'s

Filipe Cifali Stangler

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.

Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.

Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.

Filipe Cifali

unread,
Apr 26, 2018, 9:36:48 AM4/26/18
to python...@googlegroups.com
Para isso você pode usar um laço do tipo while com uma condição de saída

print("Digite o IP (formato IPv4 [www.xxx.yyy.zzz] e tecle <enter> para confirmar\n")
print("Digite SAIR e tecle <enter> para sair\n")
in = raw_input("IP para monitorar:"):
while in.lower() != 'sair':
    # resto do codigo aqui
    in = raw_input # de novo




Para mais opções, acesse https://groups.google.com/d/optout.

Matheus Liniglia

unread,
Apr 26, 2018, 9:47:00 AM4/26/18
to python...@googlegroups.com
mais ai no # e novo, eu repetiria, ate das a quantidade de IP que necessito monitorar ?

Filipe Cifali

unread,
Apr 26, 2018, 9:50:34 AM4/26/18
to python...@googlegroups.com
Não precisa,

aquele bloco de comentário seria para você inserir o test_icmp_response(in) e salvar a resposta da maneira como você preferir.





Para mais opções, acesse https://groups.google.com/d/optout.

Matheus Liniglia

unread,
Apr 26, 2018, 10:00:58 AM4/26/18
to python...@googlegroups.com
você acha que ta boa a ideia? 
esse script que voce falo, eu não entendi muito bem. 

with open file inventario.txt as f
    for line in f.readlines():
        res = test_icmp_response(line)
        with open file ''.join([line, '.txt']) as o
            o.write(res)


ele já faria o monitoramento de todos ip's?

Filipe Cifali

unread,
Apr 26, 2018, 10:12:41 AM4/26/18
to python...@googlegroups.com
Ele não está pronto para uso, você precisa fazer o código, isso foi um esboço,

basicamente ele pegaria a lista de IPs do inventario.txt e pra cada entrada da linha (cada IP um embaixo do outro) iria fazer o teste que você quer (encapsule o teste em uma ou mais funções) e depois iria escrever o resultado em um arquivo de text com o IP como nome do arquivo.

Exemplo:

O arquivo "192.168.21.50.txt" seria resultado de verificar o IP "192.168.21.50" que está escrito no arquivo "inventario.txt"


Para mais opções, acesse https://groups.google.com/d/optout.

Matheus Liniglia

unread,
Apr 26, 2018, 10:50:56 AM4/26/18
to python...@googlegroups.com
Agora entendi!!
Nossa, ficaria bem mais facil mesmo em.. O problema é colocar  na pratica kkk
Podia me ajudar ne Filipi, ganhar uma moral aqui na empresa kkk

Valeu desde já!! Já deu aquele norte

Eduardo F. Santos

unread,
Apr 26, 2018, 10:54:32 AM4/26/18
to python...@googlegroups.com
Olá Matheus,

Fiz um software que gera esses dados num banco SQLite local e depois exporta para um servidor Web. Ele era parte de um software maior chamado Cocar. Você pode visualizar aqui:

https://github.com/lightbase/cocar-agente

Especificamente sobre coleta de IP tem alguns comandos aqui:

https://github.com/lightbase/cocar-agente/blob/master/cocar/commands/network_device_commands.py



De: "Matheus Liniglia" <mamalin...@gmail.com>
Para: python...@googlegroups.com
Enviadas: Quinta-feira, 26 de abril de 2018 11:50:42
Assunto: Re: [python-brasil] Python - Monitoramento de Rede


---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.

Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/python-brasil/9258f268-4b2a-45a7-a45e-47cdcf684fbd%40googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.
--
[ ]'s

Filipe Cifali Stangler

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.

Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.

Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.



--
[ ]'s

Filipe Cifali Stangler

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.

Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.

Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.



--
[ ]'s

Filipe Cifali Stangler

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.

Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.

Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.



--
[ ]'s

Filipe Cifali Stangler

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.

Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.

Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.



--
[ ]'s

Filipe Cifali Stangler

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.

Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.

Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.

Matheus Liniglia

unread,
Apr 26, 2018, 11:07:26 AM4/26/18
to python...@googlegroups.com
Muito bom!! Vou pegar algumas coisas para estudo. Mais acha que meu "Projeto" está no caminho certo? 

Tenho esses 25 roteadores e eles são as maquinas de produção! Sempre tem que esta online, para transferência de status de trabalho da maquina! 


---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasil+unsubscribe@googlegroups.com.

Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/python-brasil/9258f268-4b2a-45a7-a45e-47cdcf684fbd%40googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.
--
[ ]'s

Filipe Cifali Stangler

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasil+unsubscribe@googlegroups.com.

Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasil+unsubscribe@googlegroups.com.

Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.



--
[ ]'s

Filipe Cifali Stangler

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasil+unsubscribe@googlegroups.com.

Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasil+unsubscribe@googlegroups.com.

Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.



--
[ ]'s

Filipe Cifali Stangler

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasil+unsubscribe@googlegroups.com.

Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasil+unsubscribe@googlegroups.com.

Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.



--
[ ]'s

Filipe Cifali Stangler

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasil+unsubscribe@googlegroups.com.

Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasil+unsubscribe@googlegroups.com.

Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.



--
[ ]'s

Filipe Cifali Stangler

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasil+unsubscribe@googlegroups.com.

Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasil+unsubscribe@googlegroups.com.

Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasil+unsubscribe@googlegroups.com.

Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.

Filipe Cifali

unread,
Apr 26, 2018, 11:49:32 AM4/26/18
to python...@googlegroups.com
Matheus,

dá uma lida na doc sobre essas coisas que falei e monta o código que conseguires, ai posta no gist.github.com e manda o link aqui se não estiver funcionando ;)


Para mais opções, acesse https://groups.google.com/d/optout.

Matheus Liniglia

unread,
Apr 26, 2018, 1:46:09 PM4/26/18
to python...@googlegroups.com
Vou ler!! 
Mais acha que consigo ter primeiro: Inserir Ip's (colocar os 25 Ip's no caso) e depois ele rodar os ping e me trazer separo por IP em arquivo .txt o resultado?

Filipe Cifali

unread,
Apr 26, 2018, 4:03:22 PM4/26/18
to python...@googlegroups.com
Matheus,

sim, tens como fazer, só lembre que dessa forma você vai ter de ler cada um dos 25 arquivos separados pra saber se está tudo online.


Para mais opções, acesse https://groups.google.com/d/optout.

Matheus Liniglia

unread,
Apr 26, 2018, 4:09:41 PM4/26/18
to python...@googlegroups.com
dando uma pesquisada aqui, vi que o cara conseguiu listar IP's para ping Ex: [196.1.1.2, 196.1.1.3, 196.1.1.4, 196.1.1.5, 196.1.1.6, 196.1.1.7]
seria isso que quero, e até melhor. Que o meu programa ele mostra no terminal o resultado tambem, e não queria isso, queria somente no arquivo! 
O Problema sera pra separar cada um né?
 

Matheus Liniglia

unread,
Apr 26, 2018, 4:10:47 PM4/26/18
to python...@googlegroups.com
# -*- coding: utf-8 -*-

import subprocess
import os
import time
ips = ['192.168.0.8','192.168.0.11','192.168.0.12','192.168.0.13','192.168.0.18']

while True:
    with open(os.devnull, "wb") as limbo:
        for ip in ips:

            result=subprocess.Popen(["ping", "-c", "1", "-n", "-W", "2", ip],
                    stdout=limbo, stderr=limbo).wait()
            if result:
                    print ip, "inativo"
            else:
                    print ip, "ativo"

    time.sleep(2)
    print(' -- recomeçar --')

Matheus Liniglia

unread,
Apr 26, 2018, 4:10:51 PM4/26/18
to python...@googlegroups.com
acima o codigo que achei, que citei Filipi

Edson Silva

unread,
Apr 26, 2018, 4:17:13 PM4/26/18
to Python Brasil
Olá Matheus!
Fiz uns  acréscimos no seu código, está salvando a situação de cada link em seu próprio arquivo.
Veja se lhe ajuda.

import os, re
from time import gmtime, strftime, sleep

def salvar(resposta,pergunta):
    arquivo = open(pergunta + ".txt","a+")
    arquivo.write(resposta + "\n")
    arquivo.close()

print("Monitoramento IP\nVerificar IP")
ip = input ("Digite os 3 primeiors conjuntos (ex:\"192.168.88.\" inicio do IP:")
inicio = int(input("Digite o Início do IP:"))
fim = int(input("Digite o Fim do IP:"))

for i in range(fim):
    pergunta = ip + "%i" %inicio
    #cmd = "ping -c4" + pergunta
    cmd = "ping " + pergunta
    print("cmd:",cmd )
    r = "".join(os.popen(cmd).readlines())
    print("Reposta:",r)
    
    hora = strftime("%a, %d %b %Y %H:%M:%S", gmtime())
    if re.search ("bytes=32", r):
        resposta = hora +" - IP: "+ pergunta + " - Link UP"
        salvar(resposta,pergunta)
        print(resposta,"\n")
        
    else:
        resposta = hora +" - IP: "+ pergunta + " - Link Down"
        salvar(resposta,pergunta)
        print(resposta,"\n")

    inicio += 1
    if inicio > fim:
        break

print("Fim do escaneamento!")

Em quinta-feira, 26 de abril de 2018 09:17:19 UTC-3, Matheus Liniglia escreveu:

Matheus Liniglia

unread,
Apr 26, 2018, 4:34:45 PM4/26/18
to python...@googlegroups.com
Edson, muito obrigado pelo retorno!!

Testei aqui, só que não entendi muito bem.. No caso voce pede o Ip, que quero que ping e depois o inicio e o fim da minha faixa de IP?


--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasil+unsubscribe@googlegroups.com
---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasil+unsubscribe@googlegroups.com.
Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.

Matheus Liniglia

unread,
Apr 26, 2018, 4:41:18 PM4/26/18
to python...@googlegroups.com
Desulpa Edson, eu que fui desatento. Agora entendi. Só precisaria de uma mudança pra ficar perfeito! esse ping teria que ser o constante ou eu mudo c4 para c10000, por exemplo

Matheus Liniglia

unread,
Apr 26, 2018, 4:43:35 PM4/26/18
to python...@googlegroups.com
teria uma possibilidade de já listar os IP's?

Edson

unread,
Apr 26, 2018, 5:00:23 PM4/26/18
to python...@googlegroups.com
Oi!
É isso mesmo, ex:  IP 192.168.88.xxx, que é meu caso e tenho 15 endereços livres. Então não tem porque correr os 255, ok. Portanto peço a faixa que no meu caso é 2 ao 15 ou seja IP 192.168.88.2 até o 192.168.88.15.

De: Matheus Liniglia
Enviada em: ‎26/‎04/‎2018 17:34
Para: python...@googlegroups.com
Assunto: Re: [python-brasil] Re: Python - Monitoramento de Rede


---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.

Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.

Edson

unread,
Apr 26, 2018, 5:02:20 PM4/26/18
to python...@googlegroups.com
No meu PC esse -c4 deu que precisava de privilégios adm, então simplifiquei pro código rodar.

De: Matheus Liniglia
Enviada em: ‎26/‎04/‎2018 17:41

Para: python...@googlegroups.com
Assunto: Re: [python-brasil] Re: Python - Monitoramento de Rede


---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.

Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.

Matheus Liniglia

unread,
Apr 26, 2018, 6:46:35 PM4/26/18
to python...@googlegroups.com
Entendi!! Mais para fazer ele rodar direto todos IPS ao mesmo tempo, tem como fazer isso ou acha melhor mexer com a execução do programa e fazer ele ir salvando em continuidade o arquivo. Pois preciso de um monitoramento desse ping por volta de 8h direto.

Matheus Liniglia

unread,
Apr 27, 2018, 6:52:47 AM4/27/18
to python...@googlegroups.com
Edson,
Bom dia! fui executar no serviço e ele começa o ping no primeiro IP e não finaliza. Uma hora eu consegui, depois não mais. O que será?


---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasil+unsubscribe@googlegroups.com.

Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasil+unsubscribe@googlegroups.com.

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasil+unsubscribe@googlegroups.com.

Matheus Liniglia

unread,
Apr 27, 2018, 7:55:43 AM4/27/18
to python...@googlegroups.com
Simplesmente não ta mais ping

Matheus Liniglia

unread,
Apr 27, 2018, 9:26:16 AM4/27/18
to python...@googlegroups.com
Edson, Bom Dia!

Precisava de um help rs!

Suas alterações então fantasticas. Só tem alguns etalhes.

Na parte de  cmd = "ping " + pergunta. Se deixa somente ping, ele vai ficar pingando constantemente até acionar o Ctrl + C, que automatcamente pararia a continuidade dos outros Ip's para ping.

A resolvi isso com cmd = "ping -c4 " + pergunta.  Ele da 4 ping e para para o outro IP. corrtamente.

Só que ai vem outro problema. Mesmo tendo resposta UP, ele joga como UPDOWN. Como corrigir isso? 


Segue imagem a baixo, para melhor entendimento.


Edson Silva

unread,
Apr 27, 2018, 9:40:45 AM4/27/18
to Python Brasil
Bom dia!

To testando desde que liguei o PC (08:00) e não falhou uma vez se quer.veja estou testando em um W10, meus relatórios estão ok.
agora tava implementando um Timer pra ele fazer o verificação automática a cada 2min por exemplo.
Vou testar o timer e depois te falo!

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.

Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.

Matheus Liniglia

unread,
Apr 27, 2018, 9:57:17 AM4/27/18
to python...@googlegroups.com
engraçado que no meu ele joga como UPDOWN e não salva o ping que foi. Será que tem haver com o SO estou usando (Linux Ubuntu 17.10)


---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasil+unsubscribe@googlegroups.com.

Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.

Edson

unread,
Apr 27, 2018, 10:17:32 AM4/27/18
to python...@googlegroups.com
Oi!

Como eu disse, no meu o -c4 estava bugando o código, então eu retirei. Mais deixei a linha comentada caso quisesse re-utiliza-la.

De: Matheus Liniglia
Enviada em: ‎27/‎04/‎2018 10:26
[A mensagem original inteira não está incluída.]

Edson

unread,
Apr 27, 2018, 10:19:39 AM4/27/18
to python...@googlegroups.com
Provavelmente.

De: Matheus Liniglia
Enviada em: ‎27/‎04/‎2018 10:57

Matheus Liniglia

unread,
Apr 27, 2018, 10:19:49 AM4/27/18
to python...@googlegroups.com
Não, estou falando que ele não ta entendendo a diferença do UP pro Down porque mesmo pigando ele ta dando como UPDOWN, como mostra na imagem

Matheus Liniglia

unread,
Apr 27, 2018, 10:21:52 AM4/27/18
to python...@googlegroups.com
No seu tambem está fazendo isso?

Reply all
Reply to author
Forward
0 new messages