[Tutor] Help with error handling in a while loop

Mark Kels mark.kels at gmail.com
Fri Feb 18 17:29:59 CET 2005


Hi all.
I'm trying to build a simple port scanner (just to learn sockets).
here is the code (doesn't work) :
import socket
sk=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host=raw_input("Enter name of host to scan: ")
start_port=input("Enter the start port: ")
end_port=input("Enter the end port: ")
while start_port<end_port:
    try:
        sk.connect((host,start_port))
        print "port",start_port,"is open on",host
        start_port=start_port+1
    except:
        print "Port",start_port,"is closed on",host

sk.close()

As you can see, when there is an exception the socket closes (I run
the program from idle,  so I don't need to exit it).
An exception will be every time the connection fails (because the port
is closed ).
I want it to print the text and go back and continue the loop whenever
there is an exception, how do I do that ?

Thanks in advance.

-- 
1. The day Microsoft makes something that doesn't suck is probably the
day they start making vacuum cleaners.
2. Unix is user friendly - it's just picky about it's friends.
3. Documentation is like sex: when it is good, it is very, very good.
And when it is bad, it is better than nothing. - Dick Brandon


More information about the Tutor mailing list