阿里云香港主机自动换IP
为什么要写这个脚本原因你懂的,现在都是直接封IP
pip3 install aliyun-python-sdk-alidns aliyun-python-sdk-domain aliyun-python-sdk-ecs time jsonpath requests
用计划任务跑不能小于10分钟
*/10 * * * * python3 /root/update_ip.py >>/var/log/update_ip.log 2>&1
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time : 2018/1/26 0026 12:01
# @Author : sanmuyan
# @FileName: aliyun_ip.py
import json, time, jsonpath,requests
from aliyunsdkcore.client import AcsClient
from aliyunsdkecs.request.v20140526 import ModifyInstanceNetworkSpecRequest, DescribeInstancesRequest
from aliyunsdkalidns.request.v20150109 import DescribeDomainRecordsRequest
from aliyunsdkalidns.request.v20150109 import AddDomainRecordRequest
from aliyunsdkalidns.request.v20150109 import DeleteDomainRecordRequest
from aliyunsdkalidns.request.v20150109 import DescribeDomainRecordInfoRequest AccessKey = ""
Secret = ""
Regions = "cn-hongkong" # 创建 AcsClient 实例
client = AcsClient(
AccessKey,
Secret,
Regions
); def http_test():
for i in range(6):
try:
data = str(requests.head('http://mirrors.ustc.edu.cn',timeout=5))
except:
print("Firewall deny connect timeout=5")
else:
print("No proble",data)
exit() def ecs_Downgrade():
request = ModifyInstanceNetworkSpecRequest.ModifyInstanceNetworkSpecRequest()
request.set_protocol_type("https")
request.set_InstanceId(InstanceId)
request.set_InternetMaxBandwidthOut('')
response = client.do_action_with_exception(request)
return response def ecs_update():
request = ModifyInstanceNetworkSpecRequest.ModifyInstanceNetworkSpecRequest()
request.set_protocol_type("https")
request.set_InstanceId(InstanceId)
request.set_InternetMaxBandwidthOut('')
response = client.do_action_with_exception(request)
return response def ecs_des(InstanceId):
request = DescribeInstancesRequest.DescribeInstancesRequest()
request.set_protocol_type("https")
request.set_InstanceIds(InstanceId)
response = client.do_action_with_exception(request)
data = json.loads(response)
data = jsonpath.jsonpath(data, "$.Instances.Instance.[*].PublicIpAddress.IpAddress.[*]")
global PublicIpAddress
PublicIpAddress = ','.join(data) def dns_des(RecordId):
request = DescribeDomainRecordInfoRequest.DescribeDomainRecordInfoRequest()
request.set_protocol_type("https")
request.set_RecordId(RecordId)
response = client.do_action_with_exception(request)
data = json.loads(response)
data = json.dumps(data, sort_keys=True, indent=2)
print(data) def dns_del():
request = DescribeDomainRecordsRequest.DescribeDomainRecordsRequest()
request.set_protocol_type("https")
request.set_DomainName(DomainName)
request.set_RRKeyWord(RR)
response = client.do_action_with_exception(request)
data = json.loads(response)
TotalCount = jsonpath.jsonpath(data, "$..TotalCount")
if TotalCount[0] != 0:
data1 = jsonpath.jsonpath(data, "$..RR")
data2 = jsonpath.jsonpath(data, "$..RecordId")
if RR in data1:
index = data1.index(RR)
RecordId = data2[index]
print("WARNING: Delete the existing records")
dns_des(RecordId)
request = DeleteDomainRecordRequest.DeleteDomainRecordRequest()
request.set_RecordId(RecordId)
response = client.do_action_with_exception(request)
return response def dns_add():
dns_del()
request = AddDomainRecordRequest.AddDomainRecordRequest()
request.set_protocol_type("https")
request.set_DomainName(DomainName)
request.set_RR(RR)
request.set_Type(Type)
request.set_Value(Value)
response = client.do_action_with_exception(request)
data = json.loads(response)
print("INFO: Record adding success")
RecordId = (data['RecordId'])
dns_des(RecordId) if __name__ == '__main__':
print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())))
InstanceId = "实例id"
DomainName = 'you.net'
RR = 'hk'
Type = 'A'
http_test()
ecs_Downgrade()
time.sleep(360)
ecs_update()
time.sleep(10)
ecs_des(InstanceId=[InstanceId])
Value = PublicIpAddress
dns_add()
阿里云香港主机自动换IP的更多相关文章
- 阿里云香港B区通过IPV6规避Google验证码
最近买了阿里云香港B来FQ,然而被Google的验证码折磨的死去活来.四处查询,终于找到了一个合适的方案. 添加IPV6支持 阿里云香港是没有IPV6地址的,需要一个tunnel,这边使用HE.NET ...
- 阿里云虚拟主机的域名添加https的方法
第一步:购买CDN套餐,阿里云虚拟主机目前是不支持https的,不过可以通过阿里云的CDN服务来跳转一下实现部署https 静态HTTPS请求数根据你的网站访问量来选择 第二步:申请SSL证书服务,有 ...
- 阿里云香港ECS搭建Shadowscoks
注(转https://yijingping.github.io/2016/11/29/fanqiang.html) 1 为什么FQ 作为一个技术人员, 最常用的就是Google.StackOverfl ...
- 阿里云ECS主机多个网站配置,是有先后顺序的
注意:阿里云ECS主机多个网站配置,是有先后顺序的: 进入路径:/alidata/server/httpd-2.4.2/conf/vhosts/ 注意这个2.4.2是自己的版本不一样,但是找到 se ...
- 阿里云虚拟主机MYSQL加密长度16位变61位
将网站迁移到阿里云虚拟主机后, 用户登录都提供密码错误, 一查询才发现MYSQL PASSWORD加密结果不致, 只有16位, 解决办法,在执行PASSWORD查询前,执行set old_passwo ...
- 给阿里云ECS主机添加IPV6地址
阿里云公开的CentOS镜像将IPv6支持给去掉了,需要加载相关模块.通过HE的tunnelbroker开启IPv6隧道使国内VPS支持IPv6地址. 1. vim /etc/modprobe.d ...
- 阿里云专有网络与弹性公网IP
阿里云服务器经典网络和专有网络究竟有什么区别? 在用户提交订单购买阿里云ECS云服务器时,会面临怎样选择网络类型的烦恼,阿里云服务器定制购买时,网络类型里的经典网络和专有网络(VPC)是什么含义,该怎 ...
- 阿里云虚拟主机针对恶意频繁攻击式访问造成CPU爆满的解决方法
最近网站CPU经常爆满,到阿里云提交了工单,工程师给我的处理意见: 您好,虚拟主机CPU占用比较高通常这种情况有两种可能: 一是网站应用程序代码逻辑较复杂,或业务架构效率比较低,在请求了某个网 ...
- 阿里云香港服务器IIS发布网站不成功解决方法
刚刚弄好了一个阿里云上服务器,费老劲儿了.我买了一个香港的服务器,最低配置,专有网络,买着玩的,一个.win的域名,省的国内备案了. 遇到的问题是怎么也访问不了我IIS上发布的网站,我把我解决方法说下 ...
随机推荐
- 学习markdown语法
12.内部跳转 [这是一个按钮](#测试标题) - 1 - 1 - 1 # 测试标题 这是一个按钮 1 1 1 测试标题 注:使用-代替空格
- emmet前端模板
https://github.com/emmetio/emmet/blob/master/lib/snippets.json "emmet.extensionsPath": &qu ...
- java.lang.Exception: No runnable methods 解决方案
Running org.jeecgframework.AbstractUnitTest Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time e ...
- dma传输数据长度,在启动前必须确保是一个大于0的数字
否则将导致不能接受数据
- iOS调用第三方导航和线路规划
线路规划: https://blog.csdn.net/qq_19979539/article/details/51938995 百度地图:baidumap: 高德地图:iosamap: 腾讯地图:q ...
- 如果是多个 c 代码的源码文件,编译方法如下: $ gcc test1.c test2.c -o main.out $ ./main.out test1.c 与 test2.c 是两个源代码文件。
如果是多个 c 代码的源码文件,编译方法如下: $ gcc test1.c test2.c -o main.out $ ./main.out test1.c 与 test2.c 是两个源代码文件.
- 广播消费:允许一个 Group ID 所标识的所有 Consumer 都会各自消费某条消息一次。
什么是消息队列 RocketMQ?_消息队列 RocketMQ-阿里云 https://help.aliyun.com/document_detail/29532.html 2019-01-30 16 ...
- go,gcvis,golang, privoxy,and git proxy
/etc/init.d/privoxy restartexport http_proxy=http://127.0.0.1:8118export https_proxy=http://127.0.0. ...
- [ovs][dpdk] ovs-dpdk 线程数,收包队列,core绑定
http://docs.openvswitch.org/en/latest/intro/install/dpdk/?highlight=dpdk 绑定2,4,6, 8核 [root@vrouter1 ...
- 动态SQL详解
动态SQL 在之前用户所编写的PL/SQL程序时有一个最大的特点:就是所操作的数据库对象(例如:表)必须存在,否则创建的子程序就会出问题,而这样的操作在开发之中被称为静态SQL操作,而动态SQL操作可 ...