最新国产好看的视频,伊人天堂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ù)據(jù)到這個端 口然后等待響應。收集這些響應并推斷可能會得到運行在目標主機端口上的應 用程序的一些信息。

#測試當前主機和端口是否開放,直接使用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ù)都 當做是一個線程。在迭代的過程中產(chǎn)生的每一個線程將在同時執(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')

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

相關文章

  • 比較詳細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)境中,我們經(jīng)常需要向多個收件人發(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,小編覺得內(nèi)容挺不錯的,現(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

最新評論

禹城市| 绥棱县| 盈江县| 冷水江市| 红河县| 航空| 会东县| 大冶市| 台南县| 丰城市| 莎车县| 英超| 长春市| 团风县| 哈密市| 墨玉县| 大宁县| 阿尔山市| 丽江市| 南通市| 沙洋县| 兴山县| 工布江达县| 拜城县| 伊通| 保德县| 精河县| 尉犁县| 靖边县| 赣州市| 钟祥市| 长葛市| 藁城市| 曲水县| 灌南县| 台北县| 佛山市| 丘北县| 石家庄市| 西宁市| 胶南市|