Python指令碼 埠掃瞄器

2021-09-27 05:51:33 字數 2166 閱讀 1639

乙個用python寫的簡單的埠掃瞄器,python環境為 3.7.0,windows系統

掃瞄給定主機是否開放了指定的埠tcp連線掃瞄是利用tcp的三次握手來確定主機的埠是否開放。確定主機埠開放之後,給埠傳送訊息,接收埠返回的訊息,然後判斷該埠執行的服務。

使用時,-h 引數可以提供主機的網域名稱或者ip位址,-p/-p 寫要掃瞄的埠,多個埠用逗號分隔

'''

@author:yw

'''import optparse

from socket import *

import threading

threadlock = threading.lock() #例項化threadlock物件

def conn_scan(host, port):

try:

conn = socket(af_inet,sock_stream)

conn.connect((host, port))

#conn.send('ywboy'.encode('utf-8')) #傳送測試

#results = conn.recv(100) #接收主機返回的資訊

threadlock.acquire() #加鎖

print("[+]%d/tcp open" % port)

#print('[+]'+results.decode('utf-8'))

conn.close()

except exception as e:

threadlock.acquire() #釋放鎖

print('[-]%d/tcp closed' % port)

finally:

threadlock.release()

conn.close()

def port_scan(host, ports):

try:

ip = gethostbyname(host) ##獲得對應主機的ip位址

except:

print("[-] cannot resolve '%s':unknow host" % host)

return

try:

name = gethostbyaddr(host) ##獲得對應主機的資訊,返回主機名、主機別名列表、主機ip位址列表

print("\n[+] scan result for:"+name[0])

except:

print("\n[+] scan results for:"+ip)

setdefaulttimeout(1)

for port in ports:

print("scan port:"+port)

conn_scan(host, int(port))

def main():

usage = "usage %prog -h -p/-p "

parse = optparse.optionparser(usage)

parse.add_option('-h', dest='host', type='string', help='target host')

parse.add_option('-p','-p', dest='ports', type='string', help='scan port')

(options, args) = parse.parse_args()

host = options.host

ports = str(options.ports).split(',')

if (host==none)|(ports==none):

print(parse.usage)

exit(0)

port_scan(host,ports)

if __name__ == '__main__':

main()

上述**,因為我只是做了埠掃瞄,所以注釋掉的判斷埠掃瞄服務的**

埠掃瞄器編寫 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...

埠掃瞄器(masscan)

s.exe號稱史上最快 3分鐘掃完全網 掃瞄器小巧而精緻,大小僅僅8k,但是使用上有諸多限制,例如僅支援再winserver2003 上無條件使用,放到其它系統上就要對系統做一些配置,不然無法支援syn方式掃瞄,這顯然不夠友好。nmap掃瞄器,能探知系統型別是否存活等,但是同時獲得更詳細的資訊也就意...