简便的定时发送远程电脑IP到钉钉
本帖最后由 waterfis 于 2022-12-8 10:01 编辑由于公司拉专线,但没资源给固定IP,IP经常两三天一变,因此弄了个每天自动发IP到钉钉群,方便大家远程或者其他用途,欢迎大家讨论或补充
感谢坛友提点,已优化成当IP变动,才发送ip,每半小时检测一次IP变动
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import requests
import json
from urllib.request import urlopen
from json import load
import time
def msg(text):
token ="钉钉群的token"
headers = {'Content-Type': 'application/json;charset=utf-8'}# 请求头
api_url = "https://oapi.dingtalk.com/robot/send?access_token=" + token
json_text = {
"msgtype": "text",# 信息格式
"text": {
"content": text
}
}
print(json_text)
# 发送并打印信息
r = requests.post(api_url, json.dumps(json_text), headers=headers).content
print(r)
#获取IP
def get_ip():
my_ip = resp = urlopen('http://httpbin.org/ip')
#http://ip.42.pl/raw
#https://api.ipify.org/?format=json
#http://jsonip.com
return str(my_ip.read(),"utf-8")
def start():
currIP = "0.0.0.0"
while True:
ip_result = get_ip()
ip_json = json.loads(ip_result) #格式化返回结果
ip = ip_json["origin"]
if(ip != currIP):
currIP = ip #判断ip是不是一致,不一致就发送最新ip信息
msg(ip_result)
time.sleep(1800)
if __name__ == "__main__":
start() 我一般用邮箱 的方式
import time
import socket
# 之前记录的IP地址
last_ip = "114.201.138.22"
# 每隔5秒检测一次IP地址
while True:
# 获取当前的IP地址
ip = socket.gethostbyname(socket.gethostname())
if ip != last_ip:
# 发送邮件
sendmessage(ip)
# 记录新的IP地址
last_ip = ip
time.sleep(5)
def sendmessage(change_ip)
import smtplib
from email.message import EmailMessage
smtp_server = "smtp.example.com"
smtp_port = 587
# 设置发件人邮箱地址、密码和收件人邮箱地址
sender_email = "sender@example.com"
password = "password"
receiver_email = "receiver@example.com"
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls()
server.login(sender_email, password)
message = EmailMessage()
message["Subject"] = "IP Change Alert"
message["From"] = sender_email
message["To"] = receiver_email
# 设置邮件正文
message.set_content(change_ip)
server.send_message(message)
server.quit()
不用这么麻烦有个东西叫动态域名路由器上面设置一下就行了
http://www.pubyun.com/accounts/signin/?next=/user/dyndns/rrs/
我家里也是动态的公网ip 每天变动就用的这个方法解决的 谢谢楼主分享 应该弄成变动了再发,这样就不重复了 kover 发表于 2022-12-6 08:50
应该弄成变动了再发,这样就不重复了
有道理,可以再优化,哈哈 支持原创 这倒是一个好思路,家庭宽带做外网穿透的时候是不是也可以这样考虑 钉钉群的token从哪弄, 钉钉个人号的token也可以吗? netxboy 发表于 2022-12-7 19:19
钉钉群的token从哪弄, 钉钉个人号的token也可以吗?
在群设置,智能群助手,添加机器人,那个Webhook就是了 这个办法不错,可以修改成可以自由发送到邮箱等
页:
[1]
2