迫于代码能力太烂,求助一个公网 IP 推送的办法

2019-11-18 04:04:00 +08:00
 szxczyc

有个 ubuntu 服务器安装了 anaconda 平常用来跑跑数据,但是拿到的权限太小,没有 root 权限,只能跑代码用。蛋疼的是内网 IP 完全连不通,只能用公网 IP,时不时服务器就断一下。每次都要别人帮忙看公网 IP,太麻烦了。

自己写了 py 代码后 crontab 每隔 10 分钟获取一次 IP 用 sever 酱推送到微信,但是有可能几天才变一次 IP,推送总要置顶,太笨。

现在有两个更好解决方案:

1、写一个 py 脚本,ip 变化时通知 BUT:从 members.3322.org/dyndns/getip 拿到的数据格式有点问题(b'1.1.1.1\n'),处理不了

2、直接用 aliyunDDNS BUT:大部分需要装阿里云从 github.com/NewFuture/DDNS 拿到的 py 脚本都可以调试成功,但是定时任务 sudo ./task.sh 命令没权限

系统调用 python 只能用 py3 自带的库,pip 之类的是不行的。 除了 py 如果有 shell 脚本也可以,谢谢!

5012 次点击
所在节点    程序员
26 条回复
mouyase
2019-11-18 04:32:33 +08:00
试试 DDNS ?
sagaxu
2019-11-18 04:54:07 +08:00
我用 dnspod,不用写代码,curl 定时调用
szxczyc
2019-11-18 05:03:02 +08:00
@mouyase #1 用的就是 ddns😅
szxczyc
2019-11-18 05:03:30 +08:00
@sagaxu #2 贴一下 github?
jokephp
2019-11-18 05:25:40 +08:00
@szxczyc 可以用 contab 进行定时调用 curl
jokephp
2019-11-18 05:26:35 +08:00
@jokephp crontab
szxczyc
2019-11-18 06:01:20 +08:00
@jokephp 代码贴一下
eason1874
2019-11-18 06:28:09 +08:00
你这个 getip 网址返回内容只是多了个换行符,恐怕是最简单的接口了,这也处理不了吗?

你不说你用哪个 DNS 怎么给你例子啊。用 DNSPod 就简单,鉴权就一个参数,签名都不用,从新写个例子就几分钟的事,但 DNSPod 不支持子域名接入,你要从阿里云 DNS 换过来的话得整个迁入。

DNSPod 文档 : https://www.dnspod.cn/docs/records.html#dns
jinqzzz
2019-11-18 06:29:00 +08:00
deepdark
2019-11-18 07:09:37 +08:00
我是 crontab 每隔 5 分钟调用一次脚本,脚本内容是,获取当前公网地址,然后用 dnspod 的 api 更新 ip 地址,比较简单
dangyuluo
2019-11-18 07:22:39 +08:00
直接写 shell+crontab,把 IP 保存到 /tmp/ip 文件里,然后每次对比是否变化,再用 PushBullet 推送,只需要 curl 就可以
ik
2019-11-18 07:30:46 +08:00
计划任务不需要 sudo 权限吧?
sutra
2019-11-18 07:49:41 +08:00
找一个能用 curl 命令上报的 DDNS 服务就可以了,没必要非得用 aliyunDDNS。
l4ever
2019-11-18 08:33:38 +08:00
dnspod aliyun 不都有 API 么.
shell 更新 ip 不是什么难事吧.
lbp0200
2019-11-18 08:58:47 +08:00
上古时代,都是直接发邮件的
liuky
2019-11-18 09:29:10 +08:00
用 docker 部署你的 python 程序, 在你的 docker 容器里面你想怎么干就怎么干
imdong
2019-11-18 09:50:11 +08:00
继续用 server 酱,加入 IP 不变就不推送的逻辑。

推送成功后保存到 ip.txt 文件内。

推送前读取这个文件,如果内容一直直接退出即可。

三行代码搞定。
jon
2019-11-18 09:59:19 +08:00
lz 头像详细希望?
a67793581
2019-11-18 10:02:43 +08:00
@imdong 思路清晰 我也怎么觉得
shuizhengqi
2019-11-18 10:05:35 +08:00
https://github.com/shuizhengqi1/aliddns 以前写过一个,只要用你的阿里云 ak 替换就行,然后里面写上你要修改的域名

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/620498

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX