#!/usr/bin/env python#coding=utf-8from socket import *
import os
import sys
defgetIPs(IP_prefix):
list=[]
k = 0
sepIps = IP_prefix.split('.')
if(len(sepIps)==4):
list.insert(k,IP_prefix)
return list
elif(len(sepIps)==3):
for i in range (1,254):
list.insert(k,IP_prefix+'.'+str(i))
return list
for i in range (1,254):
for j in range (1,254):
list.insert(k,IP_prefix+'.'+str(i)+'.'+str(j))
k += 1return list
defgetPorts():
list = []
k = 0for i in range(1,65535):
list.insert(k,i)
k += 1return list
defgetSpecifiedPorts(givenPorts):if(len(givenPorts)==0):
return [22,23,3128,8192]
return givenPorts
fileObj = open("results.txt",'w')
if __name__ == "__main__":
"""judge the parameters, need more careful design here.
in """
ips = getIPs(sys.argv[1])
if(len(sys.argv)==3):
ports = getSpecifiedPorts(sys.argv[2].split(','))
if(len(sys.argv)==2):
ports = getPorts()
print len(ports)
flag = 0#indict if result should be output to filesfor i in range(len(ips)):
result = str(ips[i]) #record resultsfor p in range(len(ports)):
try:
tcpCliSock = socket(AF_INET,SOCK_STREAM)
print str(ips[i])+"......."+ports[p]
tcpCliSock.settimeout(3)
tcpCliSock.connect((ips[i],int(ports[p]))) #connect to ip,port
tcpCliSock.close()
del tcpCliSock
result = result+" "+ports[p]
flag = 1except error:
print str(ips[i])+"failed ports "+ports[p]
if(flag == 1):
fileObj.writelines(result)
flag=0
fileObj.close()