python(一)埠掃瞄器(一)

2021-07-10 02:59:36 字數 2090 閱讀 2851

埠掃瞄器經常在滲透攻擊時使用,是網路世界中了解其他主機的工具,下面是乙個基於python的多執行緒的埠掃瞄器的**

# coding=utf-8

import optparse

import socket

import threading

screenlock = threading.semaphore(value=1)

def connscan(tgthost, tgtport):

try:

connskt = socket.socket(socket.af_inet, socket.sock_stream)#建立socket連線

connskt.connect((tgthost, tgtport))#連線到指定的ip位址和埠

connskt.send('violentpython\r\n')#傳送資訊

results = connskt.recv(100)#能接收到返回的資訊則代表連線成功,該埠是開啟的

screenlock.acquire()#因為是多執行緒允許,如果同時列印文字會使得文字混亂,加個互斥鎖

print('[+]%d/tcp open' % tgtport)#列印出開啟的埠資訊

print('[+] ' + str(results))#列印出該開啟的埠的其他資訊

except:

screenlock.acquire()

print('[-]%d/tcp closed' % tgtport)#列印出埠關閉的資訊

finally:

screenlock.release()#釋放互斥鎖

connskt.close()

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))

t = threading.thread(target=connscan, args=(tgthost, int(tgtport)))#多執行緒執行

t.start()

def main():

parser = optparse.optionparser('usage %prog –h -p ')

parser.add_option('-h', dest='tgthost', type='string', help='specify target host')

parser.add_option('-p', dest='tgtport', type='int', help='specify target port')

(options, args) = parser.parse_args()

tgthost = options.tgthost

tgtport = options.tgtport

if (tgthost == none) | (tgtport == none):

print('[-] you must specify a target host and port[s]!')

exit(0)

portscan(tgthost, args)

if __name__ == '__main__':

main()

測試指令碼

Python指令碼 埠掃瞄器

乙個用python寫的簡單的埠掃瞄器,python環境為 3.7.0,windows系統 掃瞄給定主機是否開放了指定的埠tcp連線掃瞄是利用tcp的三次握手來確定主機的埠是否開放。確定主機埠開放之後,給埠傳送訊息,接收埠返回的訊息,然後判斷該埠執行的服務。使用時,h 引數可以提供主機的網域名稱或者i...

埠掃瞄器編寫 python

今天來編寫乙個 埠掃瞄器,掃瞄某個主機 開放的埠 對某個埠進行 socket 連線,如果連線成功,則代表 該埠有效,可以根據埠,判斷 是 哪個服務,很多情況下,都是很準確的。一共有 1 65535 個埠 其實0也可以用 coding utf 8 import socket socket.setdef...

TCP埠掃瞄器

乙個基於python3的tcp埠掃瞄器 原理 就是和不同的埠進行tcp連線,能連線成功就表示此埠是開放的,不能連線成就表示此埠是關閉的。import socket import re import threading import time lock threading.lock threads l...