91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用python怎么對TCP端口進行掃描

發布時間:2021-01-22 16:26:54 來源:億速云 閱讀:208 作者:Leah 欄目:開發技術

這期內容當中小編將會給大家帶來有關使用python怎么對TCP端口進行掃描,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

掃描端口開放

#測試當前主機和端口是否開放,直接使用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函數中。一旦發現開放的端口,我們發送一個字符串數據到這個端 口然后等待響應。收集這些響應并推斷可能會得到運行在目標主機端口上的應 用程序的一些信息。

#測試當前主機和端口是否開放,直接使用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線程。線程提供 了一種同時執行的方式。在我們的掃描中利用線程,只需將 portScan()函數的迭代改一下。請注意,我們可以把每一個connScan()函數都 當做是一個線程。在迭代的過程中產生的每一個線程將在同時執行。

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怎么對TCP端口進行掃描了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乐至县| 贺兰县| 宜兴市| 铁力市| 乌什县| 咸丰县| 常州市| 出国| 沙坪坝区| 漳平市| 清水县| 晋江市| 贡觉县| 临城县| 凤城市| 恩平市| 水富县| 攀枝花市| 特克斯县| 诸暨市| 旌德县| 漳浦县| 静安区| 高淳县| 武强县| 乐都县| 钦州市| 兰考县| 香河县| 九龙坡区| 济宁市| 合阳县| 寿光市| 陵川县| 定边县| 阜南县| 马公市| 文登市| 左贡县| 阳城县| 北宁市|