Jump to content
  • 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

Recommended Posts

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()

Edited by thoga31
GeSHi

Share this post


Link to post
Share on other sites
Localhost

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


here since 2009

Share this post


Link to post
Share on other 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ê.

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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.

Edited by Psycho_Mind

Share this post


Link to post
Share on other 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 :)

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.