Browse Source

Add files via upload

蘭雅sRGB 3 years ago
parent
commit
f6ebaa7165
3 changed files with 103 additions and 0 deletions
  1. 17 0
      sqlite/get_vps_db.py
  2. 42 0
      sqlite/make_db.py
  3. 44 0
      sqlite/sskcp.py

+ 17 - 0
sqlite/get_vps_db.py

@@ -0,0 +1,17 @@
+import sqlite3
+conn = sqlite3.connect('vps2021.db')
+c = conn.cursor()
+
+# 要在执行 SELECT 语句后获取数据,你可以把游标作为 iterator,
+# 然后调用它的 fetchone() 方法来获取一条匹配的行,
+# 也可以调用 fetchall() 来得到包含多个匹配行的列表。
+vps = c.execute('SELECT * FROM vps ORDER BY ip')
+print(vps.fetchone())
+
+# 下面是一个使用迭代器形式的例子:
+cnt=1   
+for row in vps:
+  print(cnt,'节点: ', row)
+  cnt+=1
+
+conn.close()

+ 42 - 0
sqlite/make_db.py

@@ -0,0 +1,42 @@
+import sqlite3
+conn = sqlite3.connect('vps2021.db')
+
+c = conn.cursor()
+
+# Create table   建立 vps 数据表
+c.execute('''CREATE TABLE vps
+             (ip text, port text, password text, ss_port text, info text)''')
+
+# Insert a row of data  插入一行示例数据
+c.execute('''INSERT INTO vps VALUES 
+            ('188.188.188.188', '22', 'passwd@vps2021', '443', '0号vps示例')''')
+
+# Save (commit) the changes   保存提交数据修改
+conn.commit()
+
+# 不应该使用 Python 的字符串操作来创建你的查询语句,因为那样做不安全;它会使你的程序容易受到 SQL 注入攻击
+# 推荐使用 DB-API 的参数替换。在 SQL 语句中,使用 ? 占位符来代替值,然后把对应的值组成的元组做为 execute() 方法的第二个参数。
+port = ('22',)
+c.execute('SELECT * FROM vps WHERE port=?', port)
+print(c.fetchone())
+
+# Larger example that inserts many records at a time
+# 一次插入很多行数据记录的例子
+purchases = [ ('188.188.188.188', '10122', 'passwd@vps2021', '443', '1号NAT小鸡'),
+              ('188.188.188.188', '10222', 'passwd@vps2021', '443', '2号NAT小鸡'),
+              ('188.188.188.188', '10322', 'passwd@vps2021', '443', '3号NAT小鸡'),
+              ('188.188.188.188', '10422', 'passwd@vps2021', '443', '4号NAT小鸡'),
+              ('188.188.188.188', '10522', 'passwd@vps2021', '443', '5号NAT小鸡'),
+              ('188.188.188.188', '10622', 'passwd@vps2021', '443', '6号NAT小鸡'),
+              ('188.188.188.188', '10722', 'passwd@vps2021', '443', '7号NAT小鸡'),
+              ('188.188.188.188', '10822', 'passwd@vps2021', '443', '8号NAT小鸡'),
+              ('188.188.188.188', '10922', 'passwd@vps2021', '443', '9号NAT小鸡'),
+            ]
+c.executemany('INSERT INTO vps VALUES (?,?,?,?,?)', purchases)
+conn.commit()
+
+# We can also close the connection if we are done with it.
+# 如果我们完成了连接,我们也可以关闭连接。
+# Just be sure any changes have been committed or they will be lost.
+# 只要确定任何修改都已经提交,否则就会丢失。
+conn.close()

+ 44 - 0
sqlite/sskcp.py

@@ -0,0 +1,44 @@
+import sqlite3
+conn = sqlite3.connect('vps2021.db')
+c = conn.cursor()
+
+# sql 获取 vps 数据
+sql = 'SELECT * FROM vps ORDER BY ip'
+c.execute(sql)
+vps = c.fetchall()
+
+# define Color 
+Green = '\033[32m'; Red = '\033[31m'; GreenBG = '\033[42;37m'; RedBG = '\033[41;37m'
+Yellow = '\033[0;33m'; SkyBlue = '\033[0;36m'; Font = '\033[0m'
+print(GreenBG, ":: SQLite3 数据库 vps2021.db 中获取的节点表  ")
+
+# 显示 vps 数据
+cnt=0  ; sk = list()
+for row in vps:
+  print(SkyBlue, cnt,'节点:', Yellow, row)
+  sk.append(list(row))
+  cnt+=1
+
+# 输入数字选择节点
+print(RedBG, ":: 请选择你需要的节点,输入节点号:", Font, end='')
+id = int(input())
+
+def make_sskcp(sk, id):
+  text = '''
+# git.io/sskcp.sh
+  ''' 
+  cfg = sk[id]
+  str = '#!/bin/bash\n\n'
+  str += 'SERVER_IP=' + cfg[0] + '\nPORT=' + cfg[1] + '\nPASSWORD=' + cfg[2] + '\nSS_PORT=40000\nSOCKS5_PORT=1080\n'
+  print(str)
+  str += text
+  return str
+
+# 构建 sskcp.sh 
+str = make_sskcp(sk, id)
+f = open('sskcp.sh', 'w')
+f.write(str)
+
+# 关闭数据库链接和文件
+conn.close()
+f.close()