埠掃瞄器經常在滲透攻擊時使用,是網路世界中了解其他主機的工具,下面是乙個基於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...