All pastes #825544 Raw Edit

Mine

public text v1 · immutable
#825544 ·published 2007-12-20 17:35 UTC
rendered paste body
import socket, select
 
ports = [22,80,33,100,139,200,345,234,465,132]
sockets = []
 
for port in ports:
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  #  sock.setblocking(False)
  #  sock.settimeout(3)
    # Start connection attempt (does NOT wait for it to finish,
    # so we have no idea if it is going to be successful yet.
    print sockets
    try:
	sock.connect_ex(('localhost', port))
    except socket.error: pass 
    sockets.append(sock)

while sockets:
    # We're only waiting for sockets to become writeable.
    # that's when we know if the connect succeeded.
    rdable, wrtable, weird = select.select([], sockets, [])
    for sock in wrtable:
        # Hmm, the OS says a write() on the socket won't block.
        # This means we either connected successfully, or there's a socket
        # error pending (i.e. connection refused) that will cause a write()
        # to return immediately. Let's just try.
        try:
            sock.write("I'm a portscan!\n")
            print "Hmm, it seems I was able to connect to host  port " 
        except:
            print "Failed to connect to host port " 
 
        # Okay, we're done, we're now no longer interested in this socket.
        sock.close()  
        sockets.remove(sock)      
    # Done with processing, loop into the select again and wait for the next
    # socket to become interesting.