#! /usr/bin/env python
#-*- coding=utf-8 -*-
import socket
def Scan(IpAddr,port):
    if len(port)<1:
        port=3389#默認端口
    s=socket.socket()
    for p in range(253,2,-1):
        addr=IpAddr+"."+str(p)
        try:
            s.connect((addr,port))
            print addr
        except socket.error,e:
            pass
if __name__=='__main__':
    IpAddr=raw_input("please input the Ip segment:")
    port=raw_input("please input the port:")
    Scan(IpAddr,port)


輸入:

 

192.168.0

80

這是開启多線程進行掃描:

 

#! /usr/bin/env python
#-*- coding=utf-8 -*-
import threading , time , Queue , socket
port = [139,445,80,135,137,1433,3389,8080,9015,137,21,23,25,1502]#掃的常用端口。

class ScanThread(threading.Thread):
    def run(self):
        global queue#,Q
        ip = queue.get()
        for p in port:#其實這裏可以in range() 就可以添加大點的端口範圍了。
            s = socket.socket()
            s.settimeout(3)
            try:
                s.connect((ip,int(p)))
                print '\n========================================================='
                print "IP:%s , Port:%d , Open" %( ip , int(p) )
                print '=========================================================\n'
                sp = "IP:%s , Port:%d , Open" %( ip , int(p) )
                #Q.put("%s %d",ip,int(p))
            except:
                pass
            s.close()
        queue.task_done()

target = raw_input("輸入網段(192.168.12):")
x=target.split(".")
if len(x)>3:
    target=x[0]+"."+x[1]+"."+x[2]
#Q=Queue.Queue()

queue = Queue.Queue()
for ip in range(254,2,-1):
    queue.put(target+".%d" % ip)
for p in range(254,2,-1):
    ScanThread().start()
queue.join()



 


From:CSDN

創作者介紹
創作者 shadow 的頭像
shadow

資訊園

shadow 發表在 痞客邦 留言(0) 人氣()