In [ ]:
from IPython.parallel import Client
from IPython.parallel import require

rc = Client()
lv = rc.load_balanced_view()
print "Profile: %s" % rc.profile
print "Engines: %s" % len(lv)
import socket as sc


@lv.parallel(block=False)
@require('socket')
def portScan_parallel(port=20,targetIP="127.0.0.1"):
    import socket as sc
    
    s = sc.socket(sc.AF_INET, sc.SOCK_STREAM)
    result = s.connect_ex((targetIP, port))
    print result
    s.close()
    return result


targetIP = sc.gethostbyname("192.168.1.1")
myrange=range(1024,1050)
ports_parallel = portScan_parallel.map(
    myrange,
    [targetIP for i in myrange]
)
for i,p in enumerate(ports_parallel):
    print "port %5d: %4d"% (myrange[i],p)
#    if p==0:
#        print "port %d is open"% myrange[i]

In [32]:
s = sc.socket(sc.AF_INET, sc.SOCK_STREAM)
result = s.connect_ex(("192.168.1.1", 80))
print result


0

In [33]:
print s.close()


None

In [ ]: