91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 1KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-16
  • 語言: Python
  • 標簽: python??端口掃描??

資源簡介

個人用python寫的掃描主機端口的小程序,可用于掃描一臺指定主機開放且正在監聽哪些端口,請注意,在一臺主機上netstat -an看到的正在listening的端口未必是開放的,還要看主機的防火墻以及路由器的防火墻的設置。腳本中可以配置的參數說明,可以自行修改: gd.Host = "127.0.0.1" #要被掃描的主機IP gd.ThreadSize = 1000 #并行線程數,建議值1000-3000 gd.ExitNum = 10 #掃描到多少個開放端口后退出 gd.Timer = 5 #超時時間,內網設1,公網不超過5 gd.PortList_1 = range(1,2000) #端口范圍 gd.PortList_2 = [3389,6000] #特殊端口列表 腳本開始運行后會打印掃描到的主機正在監聽且開放的端口,按ctrl+c隨時結束掃描。

資源截圖

代碼片段和文件信息

#!/usr/bin/python
import?ossystimesocketthreadingcopy
?
class?cGlobalData:
????pass
gd=cGlobalData()

gd.Host?=?“127.0.0.1“
gd.ThreadSize?=?1000
gd.ExitNum?=?100
gd.Timer?=?5
gd.PortList_1?=?range(30000)
gd.PortList_2?=?[33896000]

gd.OpenPorts?=?[]
gd.NewPorts?=?[]
gd.PrintLock?=?threading.Lock()
gd.UpdateLock?=?threading.Lock()
gd.OpenLock?=?threading.Lock()
gd.ThreadLock?=?threading.Lock()
gd.ExitLock?=?threading.Lock()
gd.ScanPorts?=?[]+gd.PortList_1?+?gd.PortList_2
gd.ScanedNum?=?0
gd.Exit?=?False
gd.ThreadNum=0
gd.GroupSize=int((len(gd.ScanPorts))/gd.ThreadSize)


class?cScanThread(threading.Thread):
????def?__init__(selfaIdxaLenaId):
????????threading.Thread.__init__(self)
self.vId?=?aId
????????self.vIdx=aIdx
self.vLen=aLen
????????return
????def?run(self):
????????global?gd
gd.PrintLock.acquire()
#print?“thread“self.vId“scan?from“self.vIdx“to“self.vIdx+self.vLen
gd.PrintLock.release()
for?i?in?range(self.vIdxself.vIdx+self.vLen):
????gd.ExitLock.acquire()
????vExit=gd.Exit
????gd.ExitLock.release()
????if(vExit):
gd.ThreadLock.acquire()
gd.ThreadNum?=?gd.ThreadNum?-1
gd.ThreadLock.release()
gd.PrintLock.acquire()
#print?“thread“self.vId“exit?because?ports?enough“
gd.PrintLock.release()
return
????sk?=?socket.socket(socket.AF_INET?socket.SOCK_STREAM)
????sk.settimeout(gd.Timer)
????try:
sk.connect((gd.Hostgd.ScanPorts[i]))
????except?Exception:
gd.UpdateLock.acquire()
gd.ScanedNum?=?gd.ScanedNum?+?1
gd.UpdateLock.release()
sk.close()
continue

????sk.close()
????gd.PrintLock.acquire()
????print?‘******************‘+str(gd.ScanPorts[i])+‘***‘
????gd.PrintLock.release()
????gd.OpenLock.acquire()
????gd.NewPorts.append(gd.ScanPorts[i])
????gd.OpenLock.release()

gd.ThreadLock.acquire()
gd.ThreadNum?=?gd.ThreadNum?-1
gd.ThreadLock.release()
gd.PrintLock.acquire()
#print?“thread“self.vId“scan?over“
gd.PrintLock.release()
return


def?main():
????global?gd

????try:
pass
for?i?in?range(gd.ThreadSize):
????gd.ThreadLock.acquire()
????gd.ThreadNum?=?gd.ThreadNum?+?1
????vTrd?=?cScanThread(i*gd.GroupSizegd.GroupSizegd.ThreadNum)
????gd.ThreadLock.release()
????vTrd.start()
if(len(gd.ScanPorts)-(gd.ThreadSize*gd.GroupSize)?>?0):
????gd.ThreadLock.acquire()
????gd.ThreadNum?=?gd.ThreadNum?+?1
????vTrd?=?cScanThread((gd.ThreadSize-1)*gd.GroupSizelen(gd.ScanPorts)-(gd.ThreadSize*gd.GroupSize)gd.ThreadNum)
????gd.ThreadLock.release()
????vTrd.start()

gd.ThreadLock.acquire()
vThreadNum?=?gd.ThreadNum
gd.ThreadLock.release()
gd.PrintLock.acquire()
#print?vThreadNum“threads“
#print?gd.GroupSize“GroupSize“
gd.PrintLock.release()


vOldNum=0
vOpenNum=0
while(True):
????time.sleep(2)
????gd.ThreadLock.acquire()
????vThreadNum?=?gd.ThreadNum
????gd.ThreadLock.release()
????gd.UpdateLock.acquire()
????vScanedNum?=?gd.ScanedNum
????gd.UpdateLock.release()
????if(vOldNum?==?vScanedNum):
if(vThreadNum?<=?0):
????break
continue
????print?vScaned

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????3720??2010-03-30?16:27??scanport.py

-----------?---------??----------?-----??----

?????????????????3720????????????????????1


評論

共有 條評論