sskcp_v2.py 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import sqlite3, sys, os.path
  2. # define Color
  3. Green = '\033[32m'; Red = '\033[31m'; GreenBG = '\033[42;37m'; RedBG = '\033[41;37m'
  4. Yellow = '\033[0;33m'; SkyBlue = '\033[0;36m'; Font = '\033[0m'
  5. db_flag = os.path.exists('vps2021.db')
  6. conn = sqlite3.connect('vps2021.db')
  7. c = conn.cursor()
  8. if db_flag == False :
  9. c.execute('''CREATE TABLE vps
  10. (ip text, port text, password text, ss_port text, info text)''')
  11. c.execute('''INSERT INTO vps VALUES
  12. ('188.188.188.188', '22', 'passwd@SSL', '443', '0号示例')''')
  13. conn.commit()
  14. # sql 获取 vps 数据 , 显示 vps 数据
  15. def display_data(c):
  16. print(GreenBG, ":: 显示 SQLite3 数据库 vps2021.db 中获节点表 ")
  17. sql = 'SELECT * FROM vps ORDER BY ip'
  18. c.execute(sql)
  19. vps = c.fetchall()
  20. cnt=0 ; sk = list()
  21. for row in vps:
  22. print(SkyBlue, cnt,'节点:', Yellow, row)
  23. sk.append(list(row))
  24. cnt+=1
  25. print(Font)
  26. return sk
  27. vps = display_data(c)
  28. print(SkyBlue, ":: 使用节点直接输入节点号数字 ")
  29. print(GreenBG, ":: 输入命令:", RedBG, "del <1> 删除节点 \n :: 添加节点:", SkyBlue, 'add <ip port passwd ss_port info>', Font)
  30. print(' $ ', end='')
  31. cmd = input().strip()
  32. cmd = cmd.replace(',', '').replace('\'', '')
  33. arg = cmd.split()
  34. # print(arg)
  35. if (len(arg)==0):
  36. sys.exit(1)
  37. # 命令 del <1> 删除节点
  38. if arg[0] == 'del' :
  39. id = int(arg[1])
  40. row = vps[id]
  41. c.execute("DELETE FROM vps WHERE ip=? AND port=? ", (row[0], row[1]) )
  42. conn.commit()
  43. print('\n'); display_data(c)
  44. sys.exit(0)
  45. # 命令 add <ip port passwd ss_port info> 添加节点
  46. if arg[0] == 'add' and len(arg)==6:
  47. row =(arg[1], arg[2], arg[3], arg[4], arg[5])
  48. c.execute('INSERT INTO vps VALUES (?,?,?,?,?)', row)
  49. conn.commit()
  50. print('\n'); display_data(c)
  51. sys.exit(0)
  52. text = '''
  53. # text 字符串填充你实际用到的shell脚本内容
  54. '''
  55. def make_sskcp(sk, id):
  56. cfg = sk[id]
  57. str = '#!/bin/bash\n\n'
  58. str += 'SERVER_IP=' + cfg[0] + '\nPORT=' + cfg[1] + '\nPASSWORD=' + cfg[2] + '\nSS_PORT=40000\nSOCKS5_PORT=1080\n'
  59. print(str)
  60. str += text
  61. return str
  62. if int(arg[0]) < len(vps) and len(arg)==1:
  63. str = make_sskcp(vps, int(arg[0]))
  64. f = open('sskcp.sh', 'w')
  65. f.write(str); f.close()
  66. os.system('cat sskcp.sh')
  67. sys.exit(0)
  68. conn.close()