日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

arch检验python_Python实现端口检测

發布時間:2024/10/14 python 64 豆豆
生活随笔 收集整理的這篇文章主要介紹了 arch检验python_Python实现端口检测 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、背景:

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

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

每次只能輸入一個檢測的地址;

雖然可以輸入多個端口,但是不能指定一個端口范圍來進行批量檢測;

沒有批量任務記錄日志等;

因避免由于局域網檢測發起端網絡限制而導致的端口檢測異常,未使用python-nmap

想通過調用站長工具,實現

單次可多個地址或域名檢測

單次可指定端口范圍,批量檢測

記錄日志

二、代碼:

2.1 結構

2.2 代碼

#配置文件

#端口檢測配置

[port_check_info]

#檢測ip地址或域名

#address = baidu.com

#address = 127.0.0.1

address = www.anchnet.com,www.51cto.com,www.baidu.com

#檢查的端口,如多個端口使用,隔開,端口范圍使用'-'

#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_range = 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+':'+port 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 = {

'host': content_list[0],

'port': content_list[1],

'encode': 'tlCHS1u3IgF4sC57m6KOP3Oaj1Y1kfLq'

}

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,port 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 查看日志

四、改進:

后期可以添加異步多進程等來提升效率

可以對比多個站點檢測結果,使結果更準確

整合nmap內網也可檢測

總結

以上是生活随笔為你收集整理的arch检验python_Python实现端口检测的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。