• Ukieweb

    佳的博客

    曾梦想仗剑天涯,后来工作忙没去。

python3批量探测远程主机端口是否开放并钉钉报警

本脚本环境:python3.6.6  安装 requests

#!/usr/bin/python3
# -*- coding: utf-8 -*-
__author__ = 'laojia'
__time__ = '2020/03/12 14:57'
from socket import *
import requests
import datetime
import time
import json
import sys
import os
headers = {'Content-Type': 'application/json;charset=utf-8'}
api_url = "----your dingding url----"

#发送钉钉
def dingding(title,mess):
    json_text= {
     "msgtype": "text",
        "at": {
            "atMobiles": [
                "---phone num---"
            ],
            "isAtAll": False
        },
        "text": {
            "content": "[{}]:\n{}".format(title,mess)
        }
    }
    requests.post(api_url,json.dumps(json_text),headers=headers)
    
#端口检测
def portScanner(host,port):
    try:
        s = socket(AF_INET,SOCK_STREAM)
        s.connect((host,port))
        mess="主机 {} 端口 {} open".format(host,port)
        write_log(mess)
        print(mess)
        s.close()
    except:
        mess="主机 {} 端口 {} closed".format(host,port)
        write_log(mess)
        dingding("---title---",mess)
        print(mess)
        
#写检测日志
def write_log(mess):
    with open('D:\\checkport\\checkport.log', 'a+') as f:
        f.write("time: {} mess: {}\n".format(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"),mess ))
        
#主函数
def main():
    while(True):
        for port in range(8085,8086):
            setdefaulttimeout(5)
            portScanner('---ip----',port)
        time.sleep(60) # 每隔 60 秒检测一次
        
if __name__ == '__main__':
    main()


0
0
下一篇:centos7 下 xfs 文件系统 设置 ftype=1 启动 d_type 让 docker 使用 overlay/overlay2 文件系统

0 条评论

老佳啊

85后,大专学历,中原人士,家里没矿。

由于年轻时长的比较帅气,导致在别人眼里,我一直不谈恋爱的原因是清高,实则是自己的小自卑。最大的人生目标就是找一个相知相爱相容的人,共度余生。

和人相处时如果能感受到真诚,会非常注重彼此的关系,对别人没有什么心机,即使有利益冲突,一般也会以和为贵,因为在这个世界上,物质的东西,从来不会吸引到我。

特别迷恋那些大山大水,如果现在还能隐居,可能早就去了。对那些宏伟的有底蕴的人文景观比较不感冒。

从事于IT行业,却一直对厨房念念不忘,由于身材魁梧,总觉得自己上辈子是个将军,可惜这辈子没当兵,也不会打架。