程序员Pythoner集中营已收录(2017-8-15)

用Python制作的SS密码一键更新

2016-04-24  本文已影响1213人  皮丘吉尔

Github,exe文件在这里
-----2016.05.12-----

因为使用Shwdowsocks fq时,每6小时换一次,密码,每次都要上官网,复制密码替换密码比较麻烦,又因为最近在学python所以就尝试做了个自动替换密码的小程序。

各种不足之处已经基本完善!

以后改进方向:尝试模块化、使用正则。

使用方法:

#!/usr/bin/env python3
from urllib import request
import json,os
from collections import OrderedDict


def updatePw(pw1,pw2,pw3,j):
    length=len(j["configs"])
    for x in range(length):
        if ((j["configs"][x]["server"]).upper()=="US1.ISS.TF"):
            j["configs"][x]["password"]=pw1
        if ((j["configs"][x]["server"]).upper()=="HK2.ISS.TF"):
            j["configs"][x]["password"]=pw2
        if ((j["configs"][x]["server"]).upper()=="JP3.ISS.TF"):
            j["configs"][x]["password"]=pw3

# z=抓取网页信息
with request.urlopen('http://www.ishadowsocks.net/') as f:
    data = f.read()
# 从转成string格式
    data=data.decode()  
# 获取密码
    ind1=data.find("A密码:")
    pw1=data[ind1+4:ind1+12]
    ind2=data.find("B密码:")
    pw2=data[ind2+4:ind2+12]
    ind3=data.find("C密码:")
    pw3=data[ind3+4:ind3+12]
try:
    # 定位密码
    if os.path.exists('./gui-config.json'):
        with open('./gui-config.json', 'r') as r:
            rcontent=r.read()
            #转成json格式
            j=json.loads(rcontent,object_pairs_hook=OrderedDict)
            updatePw(pw1,pw2,pw3,j)
        with open('./gui-config.json', 'w') as r:
            r.write(json.dumps(j))
    else:
        with open('./gui-config.json', 'w') as r:
            with open('./config.json', 'r') as r2:
                content=r2.read()
                jnew=json.loads(content,object_pairs_hook=OrderedDict)
                updatePw(pw1,pw2,pw3,jnew)
            r.write(json.dumps(jnew))
except Exception as e:
    print (e)



附我的ss的配置文件

{
"configs" : [
  {
"server" : "US1.ISS.TF",
"server_port" : 443,
"password" : "82798240",
"method" : "aes-256-cfb",
"remarks" : ""}
,
  {
"server" : "HK2.ISS.TF",
"server_port" : 8989,
"password" : "11181966",
"method" : "aes-256-cfb",
"remarks" : ""}
,
  {
"server" : "jp3.iss.tf",
"server_port" : 443,
"password" : "91958918",
"method" : "aes-256-cfb",
"remarks" : ""}

],
"strategy" : null,
"index" : 0,
"global" : false,
"enabled" : true,
"shareOverLan" : false,
"isDefault" : false,
"localPort" : 1080,
"pacUrl" : null,
"useOnlinePac" : false,
"availabilityStatistics" : false}

Github

上一篇 下一篇

猜你喜欢

热点阅读