Ir para o conteúdo
Psycho_Mind

Módulo/programa para determinar que conexões se encontram ativas

Mensagens Recomendadas

Psycho_Mind

Aproveitando a deixa... por acaso alguém sabe se existe algo em python (biblioteca, programa, etc. ) que permita determinar que conexões se encontram ativas numa determinada máquina ?

Será o netstat algo que poderia ajudar ?

Editado por Psycho_Mind

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NuGuN

Pessoalmente não conheço nenhum modulo nativo que faça esse trabalho.

Podes utilizar o modulo os.system() ou os.Popen() para executar o comando netstat. Mas se depois precisares do output do comando terás de ser tu a fazer a interpretação dessa informação...

Cumps!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Psycho_Mind

Pessoalmente não conheço nenhum modulo nativo que faça esse trabalho.

Podes utilizar o modulo os.system() ou os.Popen() para executar o comando netstat. Mas se depois precisares do output do comando terás de ser tu a fazer a interpretação dessa informação...

Cumps!

Sim, depois vai ser necessário obter a informação, principalmente guarda-la para um ficheiro. Mas antes de mais preciso de conseguir fazer essa deteção. Pelo que me dizes não vou estar mais do que a chamar o netStat através do comando chamado através do código a fim de obter o que pretendo, depois terei entao sim que implementar uma forma de analisar (neste caso guarda-la num ficheiro) o conteudo da deteção feita com o netStat

Editado por Psycho_Mind

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Psycho_Mind

O netstat permite fazer este tipo de verificação se lhe passar o IP de uma determinada maquina numa rede local ?

Editado por Psycho_Mind

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Pedro C.

Eu não costumo fazer esse tipo de programação mas na net existem várias propostas. Se pretendes testar a conexão basta que tentes ligar-te à internet como neste falam neste tópico:

http://stackoverflow.com/questions/3764291/checking-network-connection

Se pretendes saber que ligações estão abertas ("disponíveis" talvez seja melhor palavra?) neste link está feito um substituto para o parsing do netstat:

http://code.activestate.com/recipes/392572/

Parece-me a mim que este tutorial terá o suficiente para construires o teu próprio código para fazeres isso:

http://pymotw.com/2/socket/tcp.html

E fica também o link dos protocolos de internet de python:

http://docs.python.org/2/library/internet

Nota que embora esteja confortável a ler código de Python a minha experiência com internet management reduz-se a acessos furtuitos a links e requisições automáticas de downloads pelo que poderei estar a interpretar mal o que pretendes. De qualquer maneira, boa sorte.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Psycho_Mind

Vou então estudar o caso segundo o que me referiste.

A intenção não é mais do que numa determinada rede local conseguir saber quais as conexoes activas numa determinada máquina. Só não sei até que ponto isso seja de facto possivel de fazer. Do pouco entendimento que tenho no assunto, sempre pressupus que fosse possivel apenas de verificar isso na máquina onde se corre o programa , não numa máquina 'externa' ainda que na mesma rede.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Pedro C.

Se a maquina em questão estiver ligada não vejo motivo para não se poder fazer. De qualquer maneira por conexões activas assumo que te refiras à listagem das ligações que a máquina esteja a detectar (wireless ou fio) estejam ligadas ou não.

Outra hipótese é a lista das configurações de rede (mais uma vez funcionais ou não) que um utilizador tenha no seu computador. Por exemplo alguém com um portátil que tenha uma configuração de rede que só funciona no trabalho e outra em casa. Aliás isto é bastante comum em estudantes universitários de instituições com a sua própria rede wireless ou fio.

Mas independente das informações que precisas consegues encontrar função análoga no windows, por exemplo?

É que na versão do windows do pc no qual estou a escrever agora (windows 7 provavelmente) se for aqui: Control Panel\Network and Internet\Network and Sharing Center , vou ter uma divisão que diz "view your active networks" que talvez seja o que tu pretendas. Não estou em condições de experimentar agora (não tenho o Python instalado neste pc) mas se eu for ver a listagem de ficheiros (ou directorias) dentro do caminho que dei acima não me irá aparecer precisamente isso?

Se quiseres experimentar o código, se a memória não me falha:

import os

os.listdir(r'Control Panel\Network and Internet\Network and Sharing Center')

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Psycho_Mind

Ora viva.

Parece que afinal não existe a necessidade de ser em outras máquinas na rede, basta apenas para a própria máquina, ou seja, onde se corre a ferramenta para verificar as conexões em processo. Neste caso estas conexões referem-se a todas as conexões TCP/IP ativas na máquina. Sendo necessário de adquirir apenas o endereço (IP) externo com o qual se está a fazer a ligação e o porto utilizado.

Se poderem dar dicas para me orientar em como saber o endereço externo agradecia.

Editado por Psycho_Mind

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
kikito

Aproveitando a deixa... por acaso alguém sabe se existe algo em python (biblioteca, programa, etc. ) que permita determinar que conexões se encontram ativas numa determinada máquina ?

Será o netstat algo que poderia ajudar ?

Se o servidor for linux, você poderia procurar por um software chamado de "iftop", o mesmo mostra todas as conexões ativas ao servidor, e a quantidade de KB a serem enviados para cada ip.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Psycho_Mind

Se o servidor for linux, você poderia procurar por um software chamado de "iftop", o mesmo mostra todas as conexões ativas ao servidor, e a quantidade de KB a serem enviados para cada ip.

Mas o iftop poderá ser 'complexo' em demasia para o que pretendo. Visto só precisar do IP externo (remote) e o porto associado, tenho procurado a partir de codigo implementado (netstat) tentar conseguir obter o que pretendo, ainda que infelizmente sem sucesso.

Editado por Psycho_Mind

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Psycho_Mind

Ou talvez passar por verificar a informação pretendida pelo netstat, mas guardar apenas a informação (end. externo e porto externo) pretendida num ficheiro.

Pelo que percebi posso guardar a informação fazendo #netstat > local_onde_guardar\nome_do_ficheiro.txt, mas guarda-me tudo... como posso especificar para o meu caso apenas os dados que preciso ? Talvez guardando o ficheiro do log em .csv poderia facilitar depois o acesso aos dados especificos que se pretende.

P.S. Sem querer acrescentei uma nova alteração mas não na que já tinha feito (e não sei como apagar esta :S... Sorry!)

Editado por Psycho_Mind

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.