Hello World
第一篇博客文章,记录博客搭建过程。
第一篇博客文章,记录博客搭建过程。
使用 Docker 快速部署 Hermes Agent 的完整指南。
解决Windows访问共享时出现0x800704f8错误,因组织安全策略阻止未经身份验证的来宾访问的问题。
python源码 import random import re import tkinter as tk a = 'abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ!@#%&*()<>{}+?123456789' def generate(n): #n表示密码位 s = 0 ddtt = \"\" # 初始化 ddtt 变量 while s == 0: ddtt = [] # 创建一个空列表 for i in range(n): # 循环n次 rand = random.randint(0, len(a)-1) # 生成随机数 ddtt.append(a[rand]) # 将随机数添加到列表中 ddtt = \"\".join(ddtt) # 将列表转换为字符串 if re.search(r'[a-z]', ddtt): # 判断字符串中是否包含小写字母 if re.search(r'[A-Z]', ddtt): # 判断字符串中是否包含大写字母 if re.search(r'[0-9]', ddtt): # 判断字符串中是否包含数字 if re.search(r'[!@#%&*()<>{}+?]', ddtt): # 判断字符串中是否包含特殊字符 s = 1 # 满足条件,跳出循环 return ddtt # 返回生成字符串 def create_window(): \"\"\"创建一个带有两个文本框的简单GUI窗口\"\"\" # 创建主窗口 window = tk.Tk() window.title(\"随机密码生成\") # 设置窗口大小 window.geometry(\"220x250\") # 宽x高 (像素) # 添加输入文本标签 input_label = tk.Label(window, text=\"生成几位数:\") input_label.pack(pady=5) # 增加上下内边距 # 创建输入文本框 input_entry = tk.Entry(window) input_entry.insert(0, \"8\") input_entry.pack(pady=5) # 增加上下内边距 # 添加显示长度标签 length_label = tk.Label(window, text=\"随机密码生成:\") length_label.pack(pady=5) # 增加上下内边距 # 创建一个框架来放置显示长度文本框和复制按钮 frame = tk.Frame(window) frame.pack(pady=5) # 创建显示长度文本框,初始值为空 length_entry = tk.Entry(frame) length_entry.pack(pady=5) # 增加上下内边距 def copy_text(): text_to_copy = length_entry.get() # 获取要复制的文本内容 window.clipboard_clear() # 清空剪贴板内容 window.clipboard_append(text_to_copy) # 将文本内容添加到剪贴板 # 创建一个按钮 button_1 = tk.Button(frame, text=\"复制\", command=copy_text) button_1.pack(pady=5) # 增加上下内边距 # 定义按钮点击事件的处理函数 def update_length(): input_text = input_entry.get() # 获取输入文本 num = generate(int(input_text)) # 调用generate函数 length_entry.delete(0, tk.END) # 清空长度文本框 length_entry.insert(0, str(num)) # 将生成的密码插入到长度文本框中 # 创建一个按钮 button = tk.Button(window, text=\"更新密码\", command=update_length) button.pack(pady=10) # 增加上下内边距 window.bind(lambda event: button.invoke()) # 绑定回车键触发按钮 # 运行主事件循环 window.mainloop() if __name__ == \"__main__\": create_window()
python import hashlib import time import requests import re import json import prettytable as pt def md5_hash(date, keyword): text = [ 'NVPh5oo715z5DIWAeQlhMDsWXXQV4hwt', 'appid=1014', 'bitrate=0', 'callback=callback123', f'clienttime={date}', 'clientver=1000', 'dfid=11S5Hd0E3dhq3jHxZ90dzFYU', 'filter=10', 'inputtype=0', 'iscorrection=1', 'isfuzzy=0', f'keyword={keyword}', 'mid=8b5710fdab09aea0e4649de3e430ad23', 'page=1', 'pagesize=30', 'platform=WebFilter', 'privilege_filter=0', 'srcappid=2919', 'token=', 'userid=0', 'uuid=8b5710fdab09aea0e4649de3e430ad23', 'NVPh5oo715z5DIWAeQlhMDsWXXQV4hwt' ] string = ''.join(text) # 创建 MD5 哈希对象 md5 = hashlib.md5() # 更新哈希对象的内容 md5.update(string.encode('utf-8')) # 更新哈希对象的内容 signature = md5.hexdigest() print(signature) return signature def save(music_id): link = 'https://wwwapi.kugou.com/yy/index.php' params = { 'r': 'play/getdata', # 'callback': 'jQuery19105617303032764249_1693890961892', 'dfid': '11S5Hd0E3dhq3jHxZ90dzFYU', 'appid': '1014', 'mid': '8b5710fdab09aea0e4649de3e430ad23', 'platid': '4', 'encode_album_audio_id': music_id, '_': '1693890961893', } link_data = requests.get(url=link, params=params, headers=headers).json() play_url = link_data['data']['play_url'] audio_name = link_data['data']['audio_name'] name = re.sub(r'[\\/:\"?*<>|]', '', audio_name) content = requests.get(url=play_url, headers=headers).content with open(\"./\" + name + '.mp3', mode='wb') as f: f.write(content) now_time = int(time.time() * 1000) keyword = input('请输入歌手名字 / 歌曲: ') signature = md5_hash(now_time, keyword) url = 'https://complexsearch.kugou.com/v2/search/song' data = { 'callback': 'callback123', 'srcappid': '2919', 'clientver': '1000', 'clienttime': now_time, 'mid': '8b5710fdab09aea0e4649de3e430ad23', 'uuid': '8b5710fdab09aea0e4649de3e430ad23', 'dfid': '11S5Hd0E3dhq3jHxZ90dzFYU', 'keyword': keyword, 'page': '1', 'pagesize': '30', 'bitrate': '0', 'isfuzzy': '0', 'inputtype': '0', 'platform': 'WebFilter', 'userid': '0', 'iscorrection': '1', 'privilege_filter': '0', 'filter': '10', 'token': '', 'appid': '1014', 'signature': signature, } headers = { 'Referer': 'https://www.kugou.com/', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36', } response = requests.get(url=url, params=data, headers=headers) html_data = re.findall('callback123\((.*)\)', response.text)[0].replace(')', '') tb = pt.PrettyTable() tb.field_names = ['序号', '歌手', '歌名', '专辑', 'ID'] lis = [] num = 1 json_data = json.loads(html_data) for index in json_data['data']['lists']: SingerName = index['SingerName'] # 歌手 SongName = index['SongName'] # 歌名 AlbumName = index['AlbumName'] # 专辑 SongID = index['EMixSongID'] # ID dit = { '歌手': SingerName, '歌名': SongName, '专辑': AlbumName, 'ID': SongID, } tb.add_row([num, SingerName, SongName, AlbumName, SongID]) lis.append(dit) num += 1 print(tb) page = input('请输入你要下载的歌曲的序号: ') try: if page == '0': for li in lis: save(music_id=li['SongID']) else: save(music_id=lis[int(page)-1]['ID']) except Exception as e: print('输入有问题', e)
使用 https://github.com/DDS-Derek/xiaoya-alist bash -c \"$(curl --insecure -fsSL https://ddsrem.com/xiaoya_install.sh)\" 备用地址 bash <(curl --insecure -fsSL https://ddsrem.com/xiaoya/all_in_one.sh) 阿里云盘TOKEN https://alist.nn.ci/zh/guide/drivers/aliyundrive.html 9945b93afdde40a8b4658424cbea6635 阿里云盘Open 如果你的xiaoya放在公网,为了防止别人蹭网,可以设置强制登入,新增/etc/xiaoya/guestlogin.txt这个文件,重启即可,文件有没有内容无所谓,如果取消强制登入就删除这个文件。强制登入的账号为 dav,密码使用 /etc/xiaoya/guestpass.txt 里设置的,同时webdav连接使用 dav 这个用户上述2个功能设置好后需要重启docker才会生效。
项目地址:https://github.com/frankiejun/serv00-play bash <(curl -Ls https://raw.githubusercontent.com/frankiejun/serv00-play/main/start.sh) 首次运行,无需使用面板,选 1 安装 serv00-play, 它会自动重新登录,输入 ss 回车进入界面。(以后都是输入 ss 回车进入界面) 选择7配置sing-box,选择8运行sing-box。 计划保号: https://github.com/frankiejun/serv00-play 点击fork将项目转入自己的GITHUB帐户
samba新建共享目录 以“商务部”为例 1.创建文件夹,并修改文件权限(读写) mkdir /disk/部门文件/商务部 chmod 070 -R /disk/部门文件/商务部 # -R 表示递归修改文件夹权限 2.创建用户和用户组 groupadd swb useradd gaoyh -g swb # 如要修改组,或增加hr组的权限 usermod gaoyh -g swb -G hr # -g 代表主组 # -G 代表加入其他组 3.创建samba用户 smbpasswd -a gaoyh # -a 代表增加samba用户 # 如修改密码则不需要-a 4.给文件夹修改拥有者(文件属于谁) chown -R root:swb /disk/部门文件/商务部 5.配置文件操作 vim /etc/samba/smb.conf 6.服务重启 service smb restart systemctl restart smb
方法一: Windows 11安装卡联网?10秒教你跳过强制联网步骤 解决方法:用隐藏命令跳过联网 步骤1:卡住时按 Shift+F10 打开CMD 当安装界面停在「连接网络」时,同时按下键盘上的 Shift + F10(注意是英文输入法的Shift)。 这时候会弹出一个黑色的命令提示符(CMD)窗口——这是关键! 步骤2:输入命令 OOBE\BYPASSNRO 在CMD窗口里,直接输入 OOBE\BYPASSNRO(大小写随便,比如 oobe\bypassnro 也行),然后按回车键。 步骤3:等重启,继续设置 输入命令后,电脑会自动重启,重新回到安装流程。 这次到「区域和语言」界面时,保持默认的「中国」,点击「是」。 步骤4:点击「我没有Internet连接」 再次回到「连接网络」界面时,注意看右下角——会出现一个 「我没有Internet连接」 的选项! 点击它,然后选择「继续执行有限设置」。 步骤5:创建本地账户 接下来就能像老版Windows一样,设置用户名和密码(本地账户),完成剩下的安装啦! 方法二: 在需要登录账户的OOBE屏幕,按Shift+F10打开命令提示符 reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\OOBE /v BypassNRO /t REG_DWORD /d 1 /f shutdown /r /t 0 方法三: 在安装界面输入快捷键:Shift+F10 来进入到命令提示 net user 你的用户名 /add net localgroup Administrators 你的用户名 /add cd OOBE msoobe && shutdown -r 总结 Windows 11的强制联网设置确实有点「不近人情」,但用 OOBE\BYPASSNRO 命令就能轻松绕过。 下次装系统时遇到卡联网,试试这几步,10秒搞定,告别「没网装不了系统」的烦恼~ (小贴士:如果是企业批量装机,这个方法还能省去教同事登录微软账户的麻烦哦!)
linux系统映射飞牛SMB盘 飞牛smb高级设置开启NTLMv1协议 拉镜像Ubuntu / Debian 系统: sudo apt update && sudo apt install cifs-utils 创建认证文件 # 在用户家目录下创建并编辑认证文件(例如 .smbcredentials): vim ~/.smbcredentials # 在文件中写入以下内容,替换你的实际用户名和密码 username=你的飞牛NAS用户名 password=你的飞牛NAS密码 修改文件权限 chmod 600 ~/.smbcredentials 创建本地挂载点目录: sudo mkdir -p /mnt/fn-smb 执行挂载命令 sudo mount -t cifs -o credentials=/home/你的用户名/.smbcredentials,vers=3.0,uid=$(id -u),gid=$(id -g) //飞牛NAS的IP/共享文件夹名称 /mnt/fn-smb **credentials=/home/你的用户名/.smbcredentials**: 指定认证文件路径。 **vers=3.0**: 指定使用 SMB 3.0 协议。如果连接失败,可以尝试 vers=2.0 或 vers=1.0 。* **uid=$(id -u),gid=$(id -g)**: 让挂载后的文件归属当前用户,方便操作。 **//飞牛NAS的IP/共享文件夹名称**: 替换为飞牛 NAS 的实际 IP 地址和共享名称。 **/mnt/fn-smb**: 替换为你实际创建的挂载点路径。 配置开机自动挂载 若希望每次开机自动挂载,需编辑 /etc/fstab 文件。添加 _netdev 和 nofail 选项非常重要,它们告知系统这是一个网络挂载,若网络未就绪或 NAS 未开机,系统不会无限期等待或启动失败。 备份原文件(安全起见): sudo cp /etc/fstab /etc/fstab.bak 在 /etc/fstab 末尾添加一行配置: sudo vim /etc/fstab 添加如下内容(替换你的实际信息): ...