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

作者: 皮丘吉尔 | 来源:发表于2016-04-24 17:58 被阅读1213次

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

    • 原理就是抓取网页上密码的位置写入到本地gui-config.json这个配置文件里,现在写得还比较“笨”,可能网页一改密码位置就会出问题,以后改“聪明点”
    • 更新密码要重启下ss的程序,所以我一般都是运行下sspw.exe后再开shdow-socks
    • ** 既然是自动更新密码,当然前提你已经至少保存过A、B、C服务器中的一个配置咯**
    • 我用的是2.5, 3.0也测试过没问题
    • 有BUG请反馈_
      sspw.exe放在ss程序和配置文件同目录就行
      -----2016.04.26已更新-----
      首先感谢iShadowsocks提供的免费fq试用.

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

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

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

    使用方法:

    • Python3.5(不晓得其他版本适用不)
    • Windows (Linux、Mac可能可以使用)
    • 将sspw.py、config.json(若第一次运行程序,初始化配置)放在ss的程序根目录
    • 直接运行 sspw.py
    #!/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

    相关文章

      网友评论

        本文标题:用Python制作的SS密码一键更新

        本文链接:https://www.haomeiwen.com/subject/jlefrttx.html