Python實現埠檢測的方法

2022-09-28 06:18:09 字數 2311 閱讀 5087

一、背景:

在平時工作中有遇到埠檢測,檢視服務端特定埠是否對外開放,常用nmap,tcping,telnet等,同時也可以利用站長工具等web掃瞄埠等。

但是在使用站長工具發現:

因避免由於區域網檢測發起端網路限制而導致的埠檢測異常,未使用python-nmap

想通過呼叫站長工具,實現

二、**:

2.1 結構

2.2 **

github位址

部分**

#配置檔案

#埠檢測配置

[port_check_info]

#檢測ip位址或網域名稱

#檢查的埠,如多個埠使用,隔開,埠範圍使用'-'

#ports = 80,8080....

ports = 20-25,80,443,1433,1521,3306,3389,6379,8080,27017

#日誌配置

[loginfo]

#日誌目錄

logdir_name = logdir

#日誌檔名稱

logfile_name = check_port.log

def _get_body(self):

"""獲取address和port

:return: list

"""程式設計客棧 address_list = self.address_list.split(',')

port_list = self.port_list.split(',')

# 處理埠範圍,返回range

range_flag = false

port_range = none

content_list_range =

for port in port_list:

if '-' in port:

range_flag = true

port_rang程式設計客棧e = range(int(port.split('-')[0]),int(port.split('-')[1])+1)

port_list.remove(port)

# 處理總體list

for add in address_list:

if range_flag:

for port in port_range:

content_list_range.append(add + ':' + str(port))

# 合併range和普通list

content_list = [ add+':'+portwww.cppcns.com for add in address_list for port in port_list ]

content_list_range.extend(content_list)

return content_list_range

def run(self):

"""進行埠檢測

:return:

"""for content in self._get_body():

content_list = content.split(':')

body =

try:

response = requests.post(url=self.url,data=body,headers=self.headers)

port_status = re.findall("msg:'(.*?)'", response.text)

if len(port_status) > 0:

# print('%s,por status is:%s' % (content, port_status))

self.logoper.info('%s,port status is:%s' % (content, port_status))

else:

self.logoper.info('%s,port status is:%s' % (content, port_status))

# print('occer error!請輸入正確的位址和埠')

except exception as e:

print(e)

三、測試:

3.1 檢視檢測結果

此處可以檢視51cto的8080埠也是開放的。

3.2 檢視日誌

四、改進:

總結本文標題: python實現埠檢測的方法

本文位址:

Python實現的tcp埠檢測操作示例

coding utf 8 import sys import socket import re def check server address,port s socket.socket print attempting to connect to s on port s address,port ...

python實現日誌檢測

檢測特定目錄下的日誌檔案的大小 當檔案大小超過200m時,發出告警資訊 linux python2.7 如下,記錄之 usr bin python coding utf 8 import os import commands import sys 設定檔案編碼 os.environ nls lang...

C 實現回文檢測的方法

回文程式設計客棧 稱正讀和反讀都相同的字串行為 回文 如 abba abccba 12321 123321是 回文 abcde 和 ababab 則不是 回文 console.w程式設計客棧rityrukteline 演算法 請輸入乙個字串!string str console.readline s...