mykcp.py 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. import sys, os, mysql.connector
  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. # 连接MYSQL数据库
  6. import conf
  7. conn = mysql.connector.connect(
  8. host=conf.host, user=conf.user,
  9. passwd=conf.passwd, port=conf.port,
  10. database="vps2022", buffered = True)
  11. c = conn.cursor()
  12. # sql 获取 vps 数据 , 显示 vps 数据
  13. def display_data(c):
  14. print(GreenBG, ":: 显示 MySQL 数据库 vps2022 中获节点表 ")
  15. sql = 'SELECT * FROM vps ORDER BY ip'
  16. c.execute(sql)
  17. vps = c.fetchall()
  18. cnt=0 ; sk = list()
  19. for row in vps:
  20. print(SkyBlue, cnt,'节点:', Yellow, row)
  21. sk.append(list(row))
  22. cnt+=1
  23. print(Font)
  24. return sk
  25. vps = display_data(c)
  26. print(SkyBlue, ":: 使用节点直接输入节点号数字 ")
  27. print(GreenBG, ":: 输入命令:", RedBG, "del <1> 删除节点 \n :: 添加节点:", SkyBlue, 'add <ip port passwd ss_port info>', Font)
  28. print(' $ ', end='')
  29. cmd = input().strip()
  30. cmd = cmd.replace(',', ' ').replace('\'', '')
  31. arg = cmd.split()
  32. # print(arg)
  33. if (len(arg)==0):
  34. sys.exit(1)
  35. # 命令 del <1> 删除节点
  36. if arg[0] == 'del' :
  37. id = int(arg[1])
  38. row = vps[id]
  39. c.execute("DELETE FROM vps WHERE ip=%s AND port=%s ", (row[0], row[1]) )
  40. conn.commit()
  41. print('\n'); display_data(c)
  42. sys.exit(0)
  43. # 命令 add <ip port passwd ss_port info> 添加节点
  44. if arg[0] == 'add' and len(arg)==6:
  45. row =(arg[1], arg[2], arg[3], arg[4], arg[5])
  46. c.execute('INSERT INTO vps VALUES (%s,%s,%s,%s,%s)', row)
  47. conn.commit()
  48. print('\n'); display_data(c)
  49. sys.exit(0)
  50. text = 'sskcp.sh'
  51. if text == 'sskcp.sh' :
  52. sql = "SELECT * FROM text WHERE name ='sskcp.sh'"
  53. c.execute(sql); row = c.fetchone(); text = row[1]
  54. def make_sskcp(sk, id):
  55. cfg = sk[id]
  56. str = '#!/bin/bash\n\n'
  57. str += 'SERVER_IP=' + cfg[0] + '\nPORT=' + cfg[1] + '\nPASSWORD=' + cfg[2] + '\nSS_PORT=40000\nSOCKS5_PORT=1080\n'
  58. print(str)
  59. str += text
  60. return str
  61. if int(arg[0]) < len(vps) and len(arg)==1:
  62. str = make_sskcp(vps, int(arg[0]))
  63. f = open('sskcp.sh', 'w')
  64. f.write(str); f.close()
  65. os.system('bash sskcp.sh restart')
  66. sys.exit(0)
  67. conn.close()