有趣的python脚本【监控公司出口ip变化并发送至钉钉群】

简介: 因为公司出口ip是动态的(拨号方式),重新拨号后就会变化。因此及时发现ip变化显得尤为重要(比如及时ecs安全组中的ip),另外可把py脚本打包成exe并加到办公电脑的计划任务里。

一:脚本详情

# 脚本作用:把本地出口ip发生变化时,发钉钉告警。另外此脚本可打包成exe程序在windown系统下执行,且win系统不需要安装python环境
# 打包exe命令: 先安装包:pip3 install pyinstaller  ,再打包:pyinstaller  -F -w  ./脚本名称.py  ,进入dist目录执行exe,拷贝至其他服务器也可执行,无论是否安装python。

二:脚本详情

# -*- coding: utf-8 -*-
import re
import os
from urllib import request

'''

# 获取当前公网ip
def GetCompanyPublicIp() :
    req = request.Request('https://myip.ipip.net/')
    req.add_header('User-Agent', 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1')
    f = request.urlopen(req)
    ip_str = f.read().decode('utf-8')
    ip = re.findall(r"\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b", ip_str)
    return ip[0]

# 从本地缓存文件中获取历史公网ip
def GetCompanyOldIp():
    try:
        f = open('ip.txt', 'r')
        oldIP = f.read().strip()
        return oldIP
    except IOError:
        print("Error: 没有找到文件或读取文件失败")
    else:
        f.close()


# 写入新的ip到本地
def IputCompanyNewIp(ip):
    try:
        f = open('ip.txt', 'w')
        f.write(ip)
    except IOError:
        print("Error: 没有找到文件或读取文件失败")
    else:
        print("写入NewIp成功")
        f.close()


#发送钉钉
def SendDing(msg):
    import requests
    import json
    dingding_url = 'https://oapi.dingtalk.com/robot/send?access_token=xxx'  
    data = {"msgtype": "text","text": {"content": "请注意:"+str(msg)}}
    headers = {'Content-Type':'application/json;charset=UTF-8'}
    send_data = json.dumps(data).encode('utf-8')
    ret = requests.post(url=dingding_url,data=send_data,headers=headers)
    print(ret.text)

if __name__ == '__main__':
    ip_file = os.path.exists('ip.txt')
    if ip_file == True:
        print('本地ip.txt文件存在,继续...')
    else:
        print('本地ip.txt文件不存在,模拟写入一个...')
        IputCompanyNewIp('1.1.1.1')

    NewIp = GetCompanyPublicIp()
    OldIp = GetCompanyOldIp()
    if NewIp == OldIp:
        print('公司出口ip没有发生变化,脚本退出。')
    else:
        print('公司出口ip发生变化:', NewIp)
        IputCompanyNewIp(NewIp)
        # SendDing("本地ip发生变化")
        SendDing("本地ip发生变化;旧的:%s 新的:%s"  %(OldIp,NewIp))
        # AddToNg(NewIp)
        #连接至ng服务器
        #sc = SSHConnection(host="139.15.119.193", port=22, user="root", pwd="R123")
        #sc.cmd("/bin/bash /tmp/p.sh  192.168.1.1")
        #sc.cmd("/bin/bash /opt/yunwei/add_denyip_to_ng.sh   %s" %NewIp)


        print("Client IP: %s  was successfully send to dingdingGroup." % NewIp)

三:效果

image.png

image.png

image.png

完!

目录
相关文章
|
26天前
|
存储 监控 算法
监控电脑屏幕的帧数据检索 Python 语言算法
针对监控电脑屏幕场景,本文提出基于哈希表的帧数据高效检索方案。利用时间戳作键,实现O(1)级查询与去重,结合链式地址法支持多条件检索,并通过Python实现插入、查询、删除操作。测试表明,相较传统列表,检索速度提升80%以上,存储减少15%,具备高实时性与可扩展性,适用于大规模屏幕监控系统。
100 5
|
3月前
|
JSON 算法 API
深度分析小红书城API接口,用Python脚本实现
小红书作为以UGC内容为核心的生活方式平台,其非官方API主要通过移动端抓包解析获得,涵盖内容推荐、搜索、笔记详情、用户信息和互动操作等功能。本文分析了其接口体系、认证机制及请求规范,并提供基于Python的调用框架,涉及签名生成、登录态管理与数据解析。需注意非官方接口存在稳定性与合规风险,使用时应遵守平台协议及法律法规。
|
3月前
|
JSON API 数据格式
深度分析大麦网API接口,用Python脚本实现
大麦网为国内领先演出票务平台,提供演唱会、话剧、体育赛事等票务服务。本文基于抓包分析其非官方接口,并提供Python调用方案,涵盖演出列表查询、详情获取及城市列表获取。需注意非官方接口存在稳定性风险,使用时应遵守平台规则,控制请求频率,防范封禁与法律风险。适用于个人学习、演出信息监控等场景。
|
3月前
|
JSON API 开发者
深度分析阿里妈妈API接口,用Python脚本实现
阿里妈妈是阿里巴巴旗下营销平台,提供淘宝联盟、直通车等服务,支持推广位管理、商品查询等API功能。本文详解其API调用方法,重点实现商品推广信息(佣金、优惠券)获取,并提供Python实现方案。
|
3月前
|
JSON API 数据安全/隐私保护
深度分析虾皮城API接口,用Python脚本实现
虾皮开放平台提供丰富的API接口,支持商品管理、订单处理及促销信息查询等功能。本文详解API认证机制与调用方法,基于Python实现商品价格及到手价获取方案,适用于电商数据分析与运营。
|
3月前
|
API 数据安全/隐私保护 开发者
深度分析苏宁API接口,用Python脚本实现
深度分析苏宁API接口,用Python脚本实现
|
3月前
|
前端开发 Shell API
深度分析58同城API接口,用Python脚本实现
58同城为国内知名分类信息平台,涵盖房产、招聘、二手车等多领域。本文基于网页抓包与解析,分享其非官方接口的Python实现方案,分析核心接口特性与反爬应对策略,适用于数据学习与信息聚合。注意:非官方接口存在风险,使用需遵守平台规则。
|
监控 Ubuntu API
Python脚本监控Ubuntu系统进程内存的实现方式
通过这种方法,我们可以很容易地监控Ubuntu系统中进程的内存使用情况,对于性能分析和资源管理具有很大的帮助。这只是 `psutil`库功能的冰山一角,`psutil`还能够提供更多关于系统和进程的详细信息,强烈推荐进一步探索这个强大的库。
195 1
|
监控 Python Windows
使用python脚本来监控进程
使用python脚本来监控进程
151 0
|
监控 数据安全/隐私保护 Python
用 Python 写摸鱼监控进程,用这个!
继打游戏、看视频等摸鱼行为被监控后,现在打工人离职的倾向也会被监控。 有网友爆料称知乎正在低调裁员,视频相关部门几乎要裁掉一半。而在知乎裁员的讨论区,有网友表示企业安装了行为感知系统,该系统可以提前获知员工跳槽念头。
283 0
用 Python 写摸鱼监控进程,用这个!

推荐镜像

更多