埠掃瞄器編寫 python

2022-07-06 16:12:11 字數 2106 閱讀 7215

今天來編寫乙個 埠掃瞄器, 掃瞄某個主機 ,開放的埠

對某個埠進行 socket 連線, 如果連線成功, 則代表 該埠有效,

可以根據埠,判斷 是 哪個服務, 很多情況下,都是很準確的。

一共有 1-65535 個埠(其實0也可以用)

# coding = utf-8

import socket

socket.setdefaulttimeout(0.1)

def get_port(host, port):

try:

obj = socket.socket()

obj.connect((host,port))

return true

except:

return false

def port_scan_test():

if get_port('127.0.0.1',135):

print('open!!!')

else:

print("no no no!!!")

對**進行優化, 剛才的**,執行的時間非常慢,還只是在掃瞄乙個埠的情況下

如果掃瞄乙個 不存在的埠的時候, 會超時, 可以把 超時時間 設定短一點

對**進行 多執行緒 或者 多程序的優化 ,大大縮短 掃瞄所有埠的時間

# coding = utf-8

import socket

import queue

socket.setdefaulttimeout(0.1)

import threading

def get_port(host, port):

try:

obj = socket.socket()

obj.connect((host,port))

return true

except:

return false

class mutit_scan(threading.thread):

def __init__(self, host, port_queue):

threading.thread.__init__(self)

self.port_queue = port_queue

self.host = host

def run(self):

while not self.port_queue.empty():

port = self.port_queue.get()

self.get_port_sign(port)

def get_port_sign(self, port):

# print(port)

if get_port(self.host, port):

print(port, 'is open!!!')

def mutili_port_scan_all():

""" 多執行緒優化 """

差不多 7 秒跑完, 那個 socket 超時時間可以設定成 0.01s

記錄一下, 寫這個東西的思路, 雖然很簡單,但是千里之行始於足下嘛

Python指令碼 埠掃瞄器

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

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掃瞄器,能探知系統型別是否存活等,但是同時獲得更詳細的資訊也就意...