Metadata-Version: 2.4
Name: xiaokang
Version: 1.2.5
Summary: 一个简单的 Python 库
Author-email: ZhaoYuanKang <1756972525@qq.com>
License: MIT License
        
        Copyright (c) 2025 [ZhaoYuanKang or XiaoKang]
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        1. The above copyright notice and this permission notice shall be included in
           all copies or substantial portions of the Software.
        
        2. Any modifications or derivative works of this software must be distributed
           under the same MIT License and must retain the original copyright notice.
        
        3. This software is provided "as is", without warranty of any kind, express or
           implied, including but not limited to the warranties of merchantability,
           fitness for a particular purpose, and non-infringement. In no event shall
           the authors or copyright holders be liable for any claim, damages, or other
           liability, whether in an action of contract, tort, or otherwise, arising from,
           out of, or in connection with the software or the use or other dealings in the
           Software.
        
        特此许可任何人免费获取副本
        本软件和相关文档文件(“软件”)的交易
        在软件中不受限制，包括但不限于权利
        使用、复制、修改、合并、发布、分发、再许可和/或销售
        软件的副本，并允许软件的使用者
        符合以下条件:
        
        1.上述版权声明和本许可声明应包含在
        软件的所有副本或重要部分。
        
        2.本软件的任何修改或衍生作品都必须分发
        在相同的MIT许可下，必须保留原始版权声明。
        
        3.本软件按“原样”提供，没有任何形式的担保，明示或
        暗示，包括但不限于适销性保证，
        适用于特定目的，且不侵权。在任何情况下都不得
        作者或版权所有者对任何索赔、损害赔偿或其他
        责任，无论是在合同诉讼、侵权诉讼或其他诉讼中，由以下原因引起，
        出于或与本软件或本软件的使用或
        软件。
        
Project-URL: Personal website, http://121.37.247.246:200/
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: python-docx==1.2.0
Requires-Dist: pandas==2.3.3
Requires-Dist: pyautogui==0.9.54
Requires-Dist: dnspython==2.8.0
Requires-Dist: bs4==0.0.2
Requires-Dist: requests==2.32.5
Requires-Dist: pillow==12.0.0
Requires-Dist: openpyxl==3.1.5
Dynamic: license-file

# 项目简介

把一些常用的功能写成函数



---



# 函数大全

```
XiaoKang/

# 常用指令
├──  报错信息()				# 发生报错时调用，可以格式化报错信息方便查看
├──  时间_文件_天()			# 用于文件命名【2026-03-16】
├──  时间_文件_时()			# 用于文件命名【2026-03-16_10】
├──  时间_文件_分()			# 用于文件命名【2026-03-16_10-55】
├──  时间_文件_秒()			# 用于文件命名【2026-03-16_10-55-28】
├──  时间_正常()				# 不能命名文件，只能打印【2026-03-16 10:55:28】
├──  时间_日志()				# 用于记录日志【2026-03-16 10:55:28.724013】

├──  sqlite数据库操作		# sqlite数据库的操作
│   ├──  连接()			# 连接指定文件的数据库
│   ├──  创建表()			# 创建新表格在数据库
│   ├──  新增数据()			# 新增的数据写入数据库，不会自动提交
│   ├──  读取数据()			# 读取数据库数据
│   ├──  修改数据()			# 修改数据库数据
│   ├──  执行SQL()			# 直接执行sqlite
│   ├──  删除数据()			# 删除数据库数据【懒狗还没写】
│   ├──  提交()				# 保存到本地文件数据库
│   ├──  断开()				# 断开连接，结束操作

├──  shell					# shell反弹
│   └──  win1()				# 反弹shell到nc -lvnp 端口（Windwows）
│   └──  win2()				# 反弹shell到nc -lvnp 端口（Windwows）
│   └──  win3()				# 反弹shell到nc -lvnp 端口（Windwows）
│   └──  linux1()			# 反弹shell到nc -lvnp 端口（Linux）
│   └──  linux2()			# 反弹shell到nc -lvnp 端口（Linux）

# 一些小工具
├──  截图()					# 截取屏幕
├──  解析ip()				# 输入域名列表，解析出多个ip
├──  查归属()				# 输入ip列表，解析出归属
├──  获取title()				# 输入url，获取title 和 状态码
├──  发送邮件()				# 发送邮件到指定邮箱
├──  批量发送邮件()			# 批量发送邮件到指定邮箱

#实用功能
├──  批量docx()				# 从表格里面获取数据批量生成docx文件

└── 结束
```



# 函数使用方法



## 1.常用指令

### 1.1 报错信息()

讲解功能：在代码执行的时候，如果报错可以执行这个，查看详细的报错信息

示例代码：

```
try:
    print('1'+1)
except:
    print(BaoCuoXingxi('json'))
```

输出：

```
{
    "报错类型":"<class 'TypeError'>",
    "报错信息":"can only concatenate str (not \"int\") to str",
    "报错文件":"C:\\xxx\\xxxx\\xxxxx\\test_1.py",
    "报错行数":6
}
```



---



## 2.sqlite数据库操作

### 2.1 连接()

用于连接指定数据库文件，连接后在操作，文件可以不存在，不存在的文件会自动创建

输入格式：（sqlite 的 db文件 位置）

返回格式：（是否成功，提示信息）

列子：

```
a = sqlite数据库操作('xk.db')
b=a.连接()
print(b)		
```

输出格式：（是否成功，提示信息）

```
(True, '数据库连接成功')
```



### 2.2 创建表()

在数据库中创建表格，设置字段格式，默认字段类型是“TEXT”

输入格式：

​    创建表(self, 表名: str, 字段: list, 字段类型: dict = {}, 字段默认值="TEXT")

​      表名：创建的数据库表名

​      字段：需要创建的字段列表，['A', 'b', 'c', 'D']

​      字段类型：字段类型字典，{'A': 'integer',  'c': 'real', 'D': 'bolo'}，默认值TEXT

​      字段默认值：字段默认值，默认TEXT

返回格式：（是否成功，提示信息）

列子：

```
b=a.创建表(表名='Information', 字段=['A', 'b', 'c', 'D'], 字段类型={'A': 'integer',  'c': 'real', 'D': 'bolo'}, 字段默认值="TEXT")
print(b)
```

输出格式：（是否成功，提示信息）

```
(True, '创建成功')
```



### 2.3 新增数据()

新增数据可以快速循环写入多个数据。【需要提交才会保存】

输入格式：

​    新增数据(self, 表名: str, 数据: dict)

​      表名：新增数据的数据库表名

​      数据：新增的数据字典

返回格式：（是否成功，提示信息）

列子：

```
b=a.新增数据(表名='Information', 数据={'A': 1, 'b': 'b', 'c': 3.1415926, 'D': True})
print(b)
b=a.提交()
print(b)
```

输出格式：（是否成功，新增数据的序号）

输出格式：（是否成功，提示信息）

```
(True, 3)
(True, '事务提交成功')
```



### 2.4 读取数据()

读取数据库数据，设置查看的字段，匹配条件，显示多少行数据

输入格式：

​    读取数据(self, 表名: str, 查看字段: list = ["*"], 判断匹配: list = [], 显示行数: list = [])

​      表名：查询的数据库表名

​      查看字段：需要查看的字段，默认['*']，表示全部字段，['A', 'b', 'c', 'D']，表示只查看A、b、c、D字段

​      判断匹配：需要匹配的条件，默认[]，表示不匹配，['A=1', 'and', 'b="2b"']，表示匹配A=1且b="2b"，分隔是空格

​      显示行数：需要显示的行数，默认[]，表示全部行，[0,10]，表示显示从第0行后显示10行

返回格式：（是否成功，提示信息）

列子：

```
b=a.读取数据(表名='Information', 查看字段=['A', 'b', 'c', 'D'], 判断匹配=['A=1', 'and', 'b="b"'], 显示行数=[0, 1])
print(b)
```

输出格式：（是否成功，读取的数据[dict,dict]）

```
(True, [(1, 'b', 21.45116, 0)])
```



### 2.5 修改数据()

修改已经存在的数据，设置匹配条件，和修改的数据。【需要提交才会保存】

输入格式：

​    修改数据(self, 表名: str, 查数据: list, 写数据: dict)

​      表名：修改数据的数据库表名

​      查数据：需要匹配的条件字典，{'A': 1, 'b': '2b'}，表示匹配A=1且b="2b"

​      写数据：需要修改的字段字典，{'启动项': 2, '系统进程': 2, 'usb插拔记录': 2}

返回格式：（是否成功，提示信息）

列子：

```
b=a.修改数据(表名='Information', 查数据=[('A', '=', 1), 'and', ('b', '=', 'b')], 写数据={'c': 21.45116, 'd': False})
print(b)
b=a.提交()
print(b)
```

输出格式：（是否成功，提示信息）

```
(True, '修改成功')
(True, '事务提交成功')
```



### 2.6 执行SQL()

直接执行复杂或者固定的sql语句

输入格式：（sql语句）

返回格式：（是否成功，提示信息）

列子：

```
b=a.执行SQL('SELECT *,rowid "NAVICAT_ROWID" FROM "main"."Information" LIMIT 0,1000')
print(b)
```

输出格式：（是否成功，提示信息）

```
(True, [(1, 'b', 21.45116, 0, 1), (1, '2b', 3.1415926, 1, 2), (1, 'b', 21.45116, 0, 3), (1, '2b', 3.1415926, 1, 4)])
```



### 2.7 删除数据()【懒狗还没写】



输入格式：

返回格式：（是否成功，提示信息）

列子：

```

```

输出格式：（是否成功，提示信息）

```

```



### 2.8 提交()

提交存在变化的数据，比如：新增、修改、删除

输入格式：无输入数据

返回格式：（是否成功，提示信息）

列子：

```
b=a.提交()
print(b)
```

输出格式：（是否成功，提示信息）

```
(True, '事务提交成功')
```



### 2.9 断开()

断开数据库连接，防止抱死

输入格式：无输入数据

返回格式：（是否成功，提示信息）

列子：

```
b=a.断开()
print(b)
```

输出格式：（是否成功，提示信息）

```
(True, '数据库连接断开')
```



---



## 3.shell（shell反弹）

### 3.1 win1()





### 3.2 win2()





### 3.3 win3()





### 3.4 linux1()





### 3.5 linux2()







---



## 4.小工具

### 4.1 截图()

会直接显示你当前屏幕截图，全屏，自动适应分辨率

参数：

​    save_path (str|None): 保存路径，例如 C:\\test.png，为None则不保存

​    width (int|None): 截图宽度，为None则全屏

​    height (int|None): 截图高度，为None则全屏

​    start_x (int): 起始X坐标

​    start_y (int): 起始Y坐标

```
a = 截图()
a.show()
```



### 4.2 解析IP()

输入域名，多线程调用多个DNS服务器解析域名ip

参数：

​    域名列表：每个域名一个元素

​    DNS：DNS服务器列表，默认使用常用DNS服务器

​    返回类型：返回数据类型【list】

```
a=解析ip(['www.baidu.com', 'www.sina.com.cn'])
print(a)
```





### 4.3 查归属()

查询ip的归属地，按顺序输出，记得自己去重

参数：[ip,ip,ip]

列子：

```
a = 查归属(['103.235.46.102', '103.235.46.115', '183.2.172.177', '110.242.70.57', '45.113.192.101'])
print(a)
```

输出：

```
[['103.235.46.102', '中国香港香港 百度云'], ['103.235.46.115', '中国香港香港 百度云'], ['183.2.172.177', '中国广东广州 电信'], ['110.242.70.57', '中国河北保定 联通'], ['45.113.192.101', '新加坡 百度云']]
```



### 4.4 获取title()【懒狗还没写】





### 4.5 发送邮件()

发送一封邮件

```
a = 发送邮件('XX@qq.com', 'XX@qq.com', 'POP3-KEY', '测试邮件标题', '测试邮件内容')
print(a)
```



### 4.6 批量发送邮件()

发送一堆邮件

```
a = 批量发送邮件('XX@qq.com', ['XX1@qq.com', 'XX2@qq.com'], 'POP3-KEY', '测试邮件标题', '测试邮件内容')
print(a)
```



---



## 5.实用工具

### 5.1 批量docx()

把表格里面的数据直接变成docx，实现批量自动修改，欢迎反馈bug

```
from xiaokang.p批量docx import 批量docx

docx模板路径 = "批量word报告\\{ceshi}.docx"
xlsx表格路径 = "批量word报告\\1.xlsx"
输出目录='批量word报告\\cs\\'

批量docx(docx模板路径, xlsx表格路径, 输出目录)
```



docx模板格式如下，每个变量都要用"{}"符号括起来

![image-20260316151956309](.\md图片\image-20260316151956309.png)



xlsx文件格式

每个表的表头就是docx里面的变量，文件名也是变量，可以自定义文件名

![image-20260316152137939](.\md图片\image-20260316152137939.png)



文件生成如下

![image-20260316152239472](.\md图片\image-20260316152239472.png)



文件内容如下

![image-20260316152333816](.\md图片\image-20260316152333816.png)









---



# 安装方法

pip install xiaokang



---



# 使用示例

导入函数会吧，不会自己学



---



# 依赖说明

目前没用使用其他依赖，都是用本地库



---



# 作者信息

作者：小康、米汤、鲁班



---
