<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
前言:
一個用python寫的簡單的埠掃描器,python環境為 3.7.0,windows系統
TCP連線掃描是利用TCP的三次握手來確定主機的埠是否開放。確定主機埠開放之後,給埠傳送訊息,接收埠返回的訊息,然後判斷該埠執行的服務。
使用時,-H 引數可以提供主機的域名或者ip地址,-p/-P 寫要掃描的埠,多個埠用逗號分隔
# -*- coding: utf-8 -*- import optparse from socket import * import threading threadLock=threading.Lock() #範例化threadLock物件 def connScan(Host,Port): try: conn=socket(AF_INET,SOCK_STREAM) conn.connect((Host,Port)) conn.send('test message'.encode("utf-8")) #傳送測試資訊給埠 results=conn.recv(100) #接收主機返回的資訊 threadLock.acquire() #加鎖 print('[+]%d/tcp open'% Port) print('[+] '+results.decode("utf-8")) conn.close() except Exception as e: threadLock.acquire() print(e) print('[-]%d/tcp closed'% Port) finally: threadLock.release() #釋放鎖 conn.close() def portScan(Host,Ports): try: IP=gethostbyname(Host) ##獲得對應主機的ip地址 except: print("[-] Cannot resolve '%s':Unknown host" %Host) return try: Name=gethostbyaddr(Host) ##獲得ip對應主機的資訊 print ("n[+] Scan Results for:"+Name[0]) except: print ("n[+] Scan Results for:"+IP) setdefaulttimeout(1) for Port in Ports: print ("Scanning port "+Port) connScan(Host,int(Port)) def main(): usage="usage %prog -H <target host> -p/-P <target ports>" parser=optparse.OptionParser(usage) #建立物件範例 parser.add_option('-H',dest='Host',type='string',help='target host') ##需要的命令列引數 parser.add_option('-P','-p',dest='Ports',type='string',help='target ports') (options,args)=parser.parse_args() Host=options.Host Ports=str(options.Ports).split(',') if (Host==None)|(Ports==None): ##如果主機和埠都是空的話 print(parser.usage) exit(0) portScan(Host,Ports) if __name__=='__main__': main()
我們還可以通過呼叫nmap進行埠掃描。
-H 引數可以掃描一個ip地址也可以掃描一個網段,-p 只能指定一個埠
# -*- coding: utf-8 -*- import nmap import optparse def Test(Hosts,port): nm=nmap.PortScanner() nm.scan(Hosts,port) port_int=int(port) #將埠從字串轉化為int型別的 for t in nm.all_hosts(): if nm[t].has_tcp(port_int): #如果445埠提供了TCP協定 state=nm[t]['tcp'][port_int]['state'] #判斷該TCP 445 埠的狀態 if state=='open': print ('[+]Found Target Host:'+t) return def main(): usage="usage %prog -H <target host> -p/-P <target port>" parser=optparse.OptionParser(usage) #建立物件範例 parser.add_option('-H',dest='Host',type='string',help='target host') ##需要的命令列引數 parser.add_option('-P','-p',dest='Port',type='string',help='target ports') (options,args)=parser.parse_args() Hosts=options.Host Port=options.Port if (Hosts==None)|(Port==None): #如果主機和埠都是空的話 print(parser.usage) exit(0) #退出 else: Test(Hosts,Port) if __name__=='__main__': main()
到此這篇關於利用Python指令碼寫埠掃描器socket,python-nmap的文章就介紹到這了,更多相關Python socket,python-nmap內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45