亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

首先我們供給一臺(tái)主機(jī)要進(jìn)行的步驟就是對(duì)其主機(jī)端口的掃描,查看其中開(kāi)放的端口。

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

掃描端口開(kāi)放

#測(cè)試當(dāng)前主機(jī)和端口是否開(kāi)放,直接使用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])

對(duì)百度的端口進(jìn)行掃描

[+] 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

捕獲應(yīng)用標(biāo)識(shí)

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

#測(cè)試當(dāng)前主機(jī)和端口是否開(kāi)放,直接使用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])

多線程掃描

因?yàn)槊恳粋€(gè)socket都有時(shí)間延遲,每一個(gè)socket掃描都將會(huì)耗時(shí)幾秒鐘,雖 然看起來(lái)無(wú)足輕重,但是如果我們掃描多個(gè)端口和主機(jī)延遲時(shí)間將迅速增大。 理想情況下,我們希望這些socket按順序掃描。引入Python線程。線程提供 了一種同時(shí)執(zhí)行的方式。在我們的掃描中利用線程,只需將 portScan()函數(shù)的迭代改一下。請(qǐng)注意,我們可以把每一個(gè)connScan()函數(shù)都 當(dāng)做是一個(gè)線程。在迭代的過(guò)程中產(chǎn)生的每一個(gè)線程將在同時(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')

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • ubuntu 18.04搭建python環(huán)境(pycharm+anaconda)

    ubuntu 18.04搭建python環(huán)境(pycharm+anaconda)

    這篇文章主要為大家詳細(xì)介紹了ubuntu 18.04搭建python環(huán)境,包括Anaconda安裝、Pycharm安裝及初始配置,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • 詳解Windows下PyCharm安裝Numpy包及無(wú)法安裝問(wèn)題解決方案

    詳解Windows下PyCharm安裝Numpy包及無(wú)法安裝問(wèn)題解決方案

    這篇文章主要介紹了詳解Windows下PyCharm安裝Numpy包及無(wú)法安裝問(wèn)題解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Python傳統(tǒng)圖像處理之皮膚區(qū)域檢測(cè)詳解

    Python傳統(tǒng)圖像處理之皮膚區(qū)域檢測(cè)詳解

    這篇文章主要介紹了在不同情景下對(duì)傳統(tǒng)圖像進(jìn)行皮膚區(qū)域檢測(cè),文章中的代碼具有一定的參考價(jià)值,感興趣的小伙伴可以跟隨小編一起來(lái)學(xué)習(xí)學(xué)習(xí)
    2021-12-12
  • python字符串的方法與操作大全

    python字符串的方法與操作大全

    這篇文章主要介紹了python字符串的方法與操作大全,非常不錯(cuò),具有參考借鑒借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • 使用實(shí)現(xiàn)python連接hive數(shù)倉(cāng)的示例代碼

    使用實(shí)現(xiàn)python連接hive數(shù)倉(cāng)的示例代碼

    這篇文章主要為大家詳細(xì)介紹了使用實(shí)現(xiàn)python連接hive數(shù)倉(cāng)的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03
  • Python實(shí)現(xiàn)全自動(dòng)安裝第三方庫(kù)的方法

    Python實(shí)現(xiàn)全自動(dòng)安裝第三方庫(kù)的方法

    這篇文章主要介紹了Python實(shí)現(xiàn)全自動(dòng)安裝第三方庫(kù)的方法,一說(shuō)Python要安裝哪個(gè)模塊,我們第一反應(yīng),win+r輸入cmd,pip?instll安裝,但是如果換電腦了,Python第三方庫(kù)那么多,難道要一次一次的敲擊pip?install,本文就介紹一個(gè)簡(jiǎn)單的方法解放雙手,需要的朋友可以參考下
    2023-07-07
  • 最新評(píng)論