最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python進行TCP端口掃描的實現(xiàn)

 更新時間:2018年12月21日 08:23:36   作者:張曉天a Excellent  
這篇文章主要介紹了python進行TCP端口掃描的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

首先我們供給一臺主機要進行的步驟就是對其主機端口的掃描,查看其中開放的端口。

我們首先創(chuàng)建一個TCP的全連接的掃描器。我們使用socket來創(chuàng)建連接器。

掃描端口開放

#測試當前主機和端口是否開放,直接使用socket連接
def connScan(host,port):
  try:
    connSkt = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
    connSkt.connect((host,port))
    print("tcp open port:" + str(port))
  except:
    print('tcp closed:'+str(port))
def portScan(tgtHost, tgtPorts):  
  try:    
    tgtIP = socket.gethostbyname(tgtHost) 
  except:    
    print("[-] Cannot resolve '%s': Unknown host" % tgtHost)    
    return  
  try:    
    tgtName = socket.gethostbyaddr(tgtIP)  print('\n[+] Scan Results for: ' + tgtName[0])
  except:    
    print('\n[+] Scan Results for: ' + tgtIP)
  socket.setdefaulttimeout(1)  
  for tgtPort in tgtPorts:    
    print('Scanning port ' + str(tgtPort))    connScan(tgtHost, int(tgtPort))
portScan('www.baidu.com', [80,443,3389,1433,23,445])

對百度的端口進行掃描

[+] Scan Results for: 61.135.169.125
Scanning port 80
tcp open port:80
Scanning port 443
tcp open port:443
Scanning port 3389
tcp closed:3389
Scanning port 1433
tcp closed:1433
Scanning port 23
tcp closed:23
Scanning port 445
tcp closed:445

捕獲應用標識

為了從捕獲我們的目標主機的應用標識,我們必須首先插入額外的驗證代碼到 connScan函數(shù)中。一旦發(fā)現(xiàn)開放的端口,我們發(fā)送一個字符串數(shù)據到這個端 口然后等待響應。收集這些響應并推斷可能會得到運行在目標主機端口上的應 用程序的一些信息。

#測試當前主機和端口是否開放,直接使用socket連接
def connScan(host,port):
  try:
    connSkt = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
    connSkt.connect((host,port))
    connSkt.send('Python\r\n')
    results = connSkt.recv(100)
    print("tcp open port:" + str(port))
    print('[+] ' + str(results)) 
  except:
    print('tcp closed:'+str(port))
def portScan(tgtHost, tgtPorts):  
  try:    
    tgtIP = socket.gethostbyname(tgtHost) 
  except:    
    print("[-] Cannot resolve '%s': Unknown host" % tgtHost)    
    return  
  try:    
    tgtName = socket.gethostbyaddr(tgtIP)    
    print('\n[+] Scan Results for: ' + tgtName[0])
  except:    
    print('\n[+] Scan Results for: ' + tgtIP)
  socket.setdefaulttimeout(1)  
  for tgtPort in tgtPorts:    
    print('Scanning port ' + str(tgtPort))    
    connScan(tgtHost, int(tgtPort))
portScan('www.qq.com', [22,80,443,3389,1433,23,445])

多線程掃描

因為每一個socket都有時間延遲,每一個socket掃描都將會耗時幾秒鐘,雖 然看起來無足輕重,但是如果我們掃描多個端口和主機延遲時間將迅速增大。 理想情況下,我們希望這些socket按順序掃描。引入Python線程。線程提供 了一種同時執(zhí)行的方式。在我們的掃描中利用線程,只需將 portScan()函數(shù)的迭代改一下。請注意,我們可以把每一個connScan()函數(shù)都 當做是一個線程。在迭代的過程中產生的每一個線程將在同時執(zhí)行。

for tgtPort in tgtPorts:
  print('Scanning port ' + str(tgtPort))
  t = threading.Thread(target=connScan, args=(tgtHost,
  int(tgtPort)))
  t.start()

使用nmap

import nmap
def nmapScan(tgtHost, tgtPort):
  nmScan = nmap.PortScanner()
  results = nmScan.scan(tgtHost, tgtPort)
  state = results['scan'][tgtHost]['tcp'][int(tgtPort)]['state']
  print(" [*] " + tgtHost + " tcp/" + tgtPort + " " + state)
  nmapScan('10.108.x.x','8080')

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 比較詳細Python正則表達式操作指南(re使用)

    比較詳細Python正則表達式操作指南(re使用)

    Python 1.5之前版本則是通過 regex 模塊提供 Emecs 風格的模式。Emacs 風格模式可讀性稍差些,而且功能也不強,因此編寫新代碼時盡量不要再使用 regex 模塊,當然偶爾你還是可能在老代碼里發(fā)現(xiàn)其蹤影
    2008-09-09
  • Python HTMLTestRunner可視化報告實現(xiàn)過程解析

    Python HTMLTestRunner可視化報告實現(xiàn)過程解析

    這篇文章主要介紹了Python HTMLTestRunner可視化報告實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • Python Queue模塊詳細介紹及實例

    Python Queue模塊詳細介紹及實例

    這篇文章主要介紹了Python Queue模塊詳細介紹及實例的相關資料,需要的朋友可以參考下
    2016-12-12
  • 2行Python實現(xiàn)給圖片加水印效果

    2行Python實現(xiàn)給圖片加水印效果

    這篇文章主要給大家介紹了如何通過2行Python實現(xiàn)給圖片加水印效果的相關資料,實現(xiàn)的方法主要是利用filestools庫,文中還介紹了一行代碼如何給圖片加水印,需要的朋友可以參考下
    2021-10-10
  • 使用Python實現(xiàn)批量發(fā)送個性化郵件

    使用Python實現(xiàn)批量發(fā)送個性化郵件

    在現(xiàn)代工作環(huán)境中,我們經常需要向多個收件人發(fā)送個性化的郵件,因此本文小編為大家整理了Python實現(xiàn)批量發(fā)送個性化郵件的示例代碼,希望對大家有所幫助
    2023-11-11
  • Python3.5 Pandas模塊之DataFrame用法實例分析

    Python3.5 Pandas模塊之DataFrame用法實例分析

    這篇文章主要介紹了Python3.5 Pandas模塊之DataFrame用法,結合實例形式詳細分析了Python3.5中Pandas模塊的DataFrame結構創(chuàng)建、讀取、過濾、獲取等相關操作技巧與注意事項,需要的朋友可以參考下
    2019-04-04
  • Windows下安裝Scrapy

    Windows下安裝Scrapy

    今天小編就為大家分享一篇關于Windows下安裝Scrapy,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • python+Django實現(xiàn)防止SQL注入的辦法

    python+Django實現(xiàn)防止SQL注入的辦法

    這篇文章主要介紹了python+Django實現(xiàn)防止SQL注入的辦法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • Python中__name__的使用實例

    Python中__name__的使用實例

    這篇文章主要介紹了Python中__name__的使用實例,并總結了兩種情況下__name__的值會是什么,需要的朋友可以參考下
    2015-04-04
  • python通過smpt發(fā)送郵件的方法

    python通過smpt發(fā)送郵件的方法

    這篇文章主要介紹了python通過smpt發(fā)送郵件的方法,涉及Python實現(xiàn)發(fā)送郵件的相關技巧,非常簡單實用,需要的朋友可以參考下
    2015-04-04

最新評論

高安市| 台东县| 宣恩县| 丹东市| 苍溪县| 伊宁县| 双城市| 隆回县| 南投县| 公主岭市| 普格县| 若羌县| 闸北区| 衡南县| 梅州市| 开平市| 武陟县| 崇义县| 德庆县| 绵竹市| 岳阳市| 隆回县| 德兴市| 安溪县| 新乡市| 临泉县| 城市| 文山县| 琼海市| 丹江口市| 胶州市| 瑞金市| 兴化市| 吕梁市| 宁强县| 宁陕县| 会昌县| 山丹县| 东阳市| 都安| 定边县|