Psycho_Mind Posted March 12, 2013 at 03:46 PM Report #498881 Posted March 12, 2013 at 03:46 PM (edited) 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 ? Edited March 12, 2013 at 03:46 PM by Psycho_Mind
NuGuN Posted March 13, 2013 at 01:48 PM Report #499038 Posted March 13, 2013 at 01:48 PM 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!
Psycho_Mind Posted March 14, 2013 at 10:37 PM Author Report #499255 Posted March 14, 2013 at 10:37 PM (edited) 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 Edited March 14, 2013 at 10:44 PM by Psycho_Mind
Psycho_Mind Posted March 14, 2013 at 10:49 PM Author Report #499257 Posted March 14, 2013 at 10:49 PM (edited) O netstat permite fazer este tipo de verificação se lhe passar o IP de uma determinada maquina numa rede local ? Edited March 14, 2013 at 10:58 PM by Psycho_Mind
Pedro C. Posted March 15, 2013 at 04:02 PM Report #499318 Posted March 15, 2013 at 04:02 PM 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.
Psycho_Mind Posted March 16, 2013 at 03:01 PM Author Report #499379 Posted March 16, 2013 at 03:01 PM 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.
Pedro C. Posted March 16, 2013 at 06:11 PM Report #499398 Posted March 16, 2013 at 06:11 PM 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')
Psycho_Mind Posted March 18, 2013 at 03:33 PM Author Report #499547 Posted March 18, 2013 at 03:33 PM (edited) 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. Edited March 18, 2013 at 06:44 PM by Psycho_Mind
kikito Posted March 18, 2013 at 07:23 PM Report #499595 Posted March 18, 2013 at 07:23 PM 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.
Psycho_Mind Posted March 19, 2013 at 02:27 PM Author Report #499658 Posted March 19, 2013 at 02:27 PM (edited) 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. Edited March 19, 2013 at 02:38 PM by Psycho_Mind
Psycho_Mind Posted March 19, 2013 at 03:11 PM Author Report #499667 Posted March 19, 2013 at 03:11 PM (edited) 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!) Edited March 19, 2013 at 03:13 PM by Psycho_Mind
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now