一、背景:
在平時工作中有遇到埠檢測,檢視服務端特定埠是否對外開放,常用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...