今天來編寫乙個 埠掃瞄器, 掃瞄某個主機 ,開放的埠
對某個埠進行 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掃瞄器,能探知系統型別是否存活等,但是同時獲得更詳細的資訊也就意...