Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Psycho_Mind

Guardar dados capturados para ficheiro

Mensagens Recomendadas

Psycho_Mind

Boas.

Tenho um programa que está a verificar um intervalo de portas para ver se as mesmas estão abertas ou não. Mas queria passar depois essa informção para um ficheiro, mas aqui é que estou a ter um problema.

Presumo que deva de ter um ciclo para que ele veja todas as portas (abertas/fechadas) que mostrou para as poder guardar no ficheiro, mas não sei como colocar esse ciclo no código que já tenho.

for port in range(start_port,end_port + 1):
    s=socket(AF_INET, SOCK_STREAM)        
    s.settimeout(timeout)                
    if(s.connect_ex((ip,port))==0):        
        print "Port " , port, "is open"    
        s.close()                            
    else:
        print "Port ", port, "is closed"    
        s.close()

scan_log= open("scan_file.pdf","w")
scan_log.write("Ports for %s:\n" % ip)
scan_log.write("%s\n" % port)
scan_log.close()

Editado por thoga31
GeSHi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Psycho_Mind

Tens de abrir o ficheiro antes do ciclo e escrever a informação dentro do mesmo.

Isso eu já tinha conseguido perceber... dai ter falado que seria à partida necessário o tal loop... o problema é que das formas que tentei não consegui obter o esperado. Estarei com certeza a fazer algo de errado, só não sei o quê.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Localhost

Tenta entender isto:

para todas as portas cur_port:
  se cur_port == ABERTA:
     escrever_ficheiro ("Porta aberta: ", cur_port)
  noutro caso:
     escrever_ficheiro ("Porta fechada: ", cur_port)


here since 2009

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Psycho_Mind

Tenta entender isto:

para todas as portas cur_port:
se cur_port == ABERTA:
escrever_ficheiro ("Porta aberta: ", cur_port)
noutro caso:
escrever_ficheiro ("Porta fechada: ", cur_port)

Eu já percebi a ideia de como ter que proceder... Terei que com o loop ir buscar as portas que são apresentadas, mas não estou a conseguir ir buscar as mesmas. Nunca me guarda no ficheiro exatamente como me apresenta na shell. Apresenta-me apenas a ultima porta do range que defino.

Editado por Psycho_Mind

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Psycho_Mind

Parece que finalmente consegui resolver a situação. Não estava a colocar as coisas no sitio certo e faltavam uns pormenores, que isto de nunca se ter utilizado a linguagem às vezes o mais simples também complica. Obrigado pela ajuda.

A escrita no ficheiro já está agora a ver se a leitura corre melhor :)

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.