<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://purl.org/rss/1.0/"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel rdf:about="https://blog.lmb.blue/feed/rss/category/jcsj/">
<title>哈喽！林墨白 - 教程实践</title>
<link>https://blog.lmb.blue/category/jcsj/</link>
<description>个人经验实践</description>
<items>
<rdf:Seq>
<rdf:li resource="https://blog.lmb.blue/archives/1585/"/>
<rdf:li resource="https://blog.lmb.blue/archives/1541/"/>
<rdf:li resource="https://blog.lmb.blue/archives/1420/"/>
<rdf:li resource="https://blog.lmb.blue/archives/1348/"/>
<rdf:li resource="https://blog.lmb.blue/archives/1323/"/>
<rdf:li resource="https://blog.lmb.blue/archives/1271/"/>
<rdf:li resource="https://blog.lmb.blue/archives/1011/"/>
<rdf:li resource="https://blog.lmb.blue/archives/943/"/>
<rdf:li resource="https://blog.lmb.blue/archives/906/"/>
<rdf:li resource="https://blog.lmb.blue/archives/770/"/>
<rdf:li resource="https://blog.lmb.blue/archives/671/"/>
<rdf:li resource="https://blog.lmb.blue/archives/662/"/>
<rdf:li resource="https://blog.lmb.blue/archives/656/"/>
<rdf:li resource="https://blog.lmb.blue/archives/638/"/>
<rdf:li resource="https://blog.lmb.blue/archives/629/"/>
</rdf:Seq>
</items>
</channel>
<item rdf:about="https://blog.lmb.blue/archives/1585/">
<title>享有XYZ顶级域名仅需4.77元/年？</title>
<link>https://blog.lmb.blue/archives/1585/</link>
<dc:date>2025-10-11T20:15:00+08:00</dc:date>
<description>为何这么便宜？xyz  registry（管理局）为了快速推广和占领市场，采取了非常激进的注册策略。他们将这些长数字域名视为“库存”，以极低的价格批量“清仓”给注册商，甚至提供大量优惠和促销。对他们来说，长数字域名就是薄利多销，注册一个就赚一个，总比空着好。但是！一个域名的价值主要取决于其易记性、品牌性和稀缺性。长数字XYZ域名在这几方面都非常弱势，就像你能够轻易记住一串≥6位数且毫无关联的数字吗(别想了，好记的早就被注册了)？如果还是不懂，可以看以下比喻：apple.com 就像是纽约曼哈顿的黄金地段豪宅（极度稀缺，价值连城）。car.xyz 就像是城市中心的一间不错公寓（有明确含义，价值不菲）。520.xyz 就像是一个门牌号吉利的商铺（因文化赋予含义而增值）。658392.xyz 就像是在茫茫戈壁滩上的一块地皮：土地（供应）几乎是无限的，但没人想去那里盖房子（需求），所以几乎一文不值。在哪里注册呢？在Spaceship(www.spaceship.com)注册≥6位纯数字XYZ域名即可。关于spaceship： Spaceship 作为一家相对新兴的 ICANN 认证域名注册商和网络服务平台，其目标是颠覆传统网络服务商复杂和不透明的模式。它由 Namecheap（全球第二大域名注册商）孵化和支持，旨在提供一个更现代化、更简洁、更注重用户体验的一站式平台。Spaceship的优点： 不用实名且每年仅需4.77元，可以用支付宝(建议在电脑端绑定)、Paypal和信用卡等方式支付spaceship的缺点： 不能备案(意味着不能使用国内服务器，除非转入国内服务商)如果你需要备案的话，可以在Spaceship上一次性将域名续费10年再转入国内服务商(如：阿里云、腾讯云……)。我推荐转入阿里云，因为阿里云每年只需7元，或者怕嫌麻烦可以直接在阿里云注册≥6位纯数字XYZ域名，每年也是只需7元。纯数字XYZ域名是否适合自己呢？认为一串数字本身有某种寓意或实用性的人。追求极低成本的人。需要大量域名作为“耗材”的人。不看重品牌形象，更看重功能的人。有临时、短期、一次性需求的人。一句话概括：它大多数时候适合当一张“草稿纸”、一个“临时工牌”或一个“可丢弃的工具”，但不太适合当“公司大门”或“个人名片”(除非寓意非常契合)。 如果你有上述需求，那么它就是一个性价比极高的选择。纯数字XYZ域名的优缺点先说优点吧，它拥有低廉的价格Emmm……还有就是可以免费开启Whois隐私保护(不像CN域名)那么缺点就非常明显了，因价格低廉，可能会他人被用于搭建垃圾邮件、钓鱼网站等，影响整个.xyz后缀的声誉。然后长串无规律数字不利于用户记忆和口碑传播。还有就是搜索引擎在收录和排名时可能更为谨慎，收录速度可能较慢。我的看法如果你能够克服上述缺点的话，那么纯数字XYZ域名是一个经济实惠的选择(一顿早饭钱，还要什么自行车？)。对于网站初学者来说，一个低廉域名能够减少自己的试错成本。其实我不建议把纯数字XYZ域名当做自己的主域名来用，假如845872.xyz与lmb.blue同时向你发出友链申请，你的第一好感倾向于谁呢？但是呢，一串有意义且自己喜欢的数字域名我认为可以保留下来，毕竟一顿早饭钱就可以拥有一年，何乐而不为呢？前几天我本想注册1415926.xyz(3.1415926.xyz，π代表无穷无尽，xyz代表未知数)，但是很可惜被另外一位博主早在几年前注册了。然后我今天就注册了20101024.xyz，有兴趣可以猜猜这串数字的意义:[小偷] </description>
</item>
<item rdf:about="https://blog.lmb.blue/archives/1541/">
<title>0成本在Vercel部署Umami网站分析工具</title>
<link>https://blog.lmb.blue/archives/1541/</link>
<dc:date>2025-10-07T08:29:00+08:00</dc:date>
<description>什么是UmamiUmami 是一款使用MIT开源协议且注重隐私的轻量级网站分析工具，可作为Google Analytics 的替代品，提供流量统计、用户行为分析等功能，支持自托管且不收集个人数据。流量分析：跟踪总流量、唯一用户数、会话时长等指标‌。访客分析：记录地理位置、设备类型等数据‌。隐私保护：符合GDPR 和CCPA，不使用 Cookie 或追踪个人行为‌。自定义事件：支持按钮点击、表单提交等事件跟踪‌。简而言之，它是一款为个人和中小团队打造的轻量级网站分析工具。它不只简单高效，更将用户隐私置于首位。官网： umami.is中文网： umami.zhcndoc.com我为什么要用Umami呢？我之前使用的是91LA(数字没有错)网站统计，然后听别人说容易跳片战，但是我觉得我从来没有过，所以不以为意。直到我日常视奸BlogsClub成员的时候，发现某某日记跳片站了[Lol] 。询问的之后发现是用了91LA，这次我是真见识到了[Puke] 我是看见群友提到的Umami，好奇心驱使我打开它们的demo站，发现简直长在我的心巴上了！！！属于是简约而不简单hhhh~如何部署Umami支持环境一台安装 Node.js 版本 18.18 或更高的服务器。一个数据库。 Umami 支持 MySQL（最低 v8.0）和 PostgreSQL（最低 v12.14）数据库。部署方式从源代码安装： 从 GitHub 获取代码并自行构建应用程序。使用 Docker Compose： 使用 docker compose 构建自己的 Docker 容器。使用 Docker 镜像： 下载一个预构建的 Docker 镜像。本次使用Vercel部署的教程属于“从源代码安装”方式(因为我的很多网站只适配小于MySQL 8.0的版本)准备工作Vercel账户(需提前登录)Git账户(这里演示GitHub，需提前登录)自建数据库(可有可无)可以在https://vercel.com/account/settings/authentication 提前绑定Git账户开始部署一键部署点击立刻部署后，请填写第二行的Repository Name(意为储存库名称，只能填字母、数字)，在这里创建的储存库默认为私人库，点一下右边上解锁图标就变成公共库了(纯字面意思，不懂百度)然后点击Create等待储存库创建完成就可以进入下一步了这里会让你填写环境变量中的信息，DATABASE_URL表示你的数据库有自建数据库在DATABASE_URL中填写数据库的连接字符串(如下)MySQL：mysql://username:password@host:3306/dbnamePostgres：postgresql://username:password@host:5432/dbname注意： 请保证你的数据库版本和支持环境的版本一致，否则将会一直部署失败你需要将其中的username、password、host、port、dbname和端口(3306、5523是大部分默认的端口)替换为你自己数据库的实际信息，然后点击Deploy即可部署无自建数据库当然！如果你没有任何属于自己的数据库，那就可以选择Vercel中免费的数据库，这时你可以直接随便填点内容，再点击Deploy进行部署(虽然会部署失败:[哈士奇] )小技巧：在立刻部署的链接中，把&amp;env=DATABASE_URL删除后再访问就可以跳过配置环境变量，直接部署了。(后面步骤中的也不用移除环境变量了)点击Deploy后会变成Deploying，向下滑等待部署失败后，点击Go to Project进入项目然后你需要点击依次点击Settings→Environment Variables，找到DATABASE_URL环境变量，点击右边三个点，再点击Remove进行移除接着点击Storage，再点击Create Databas选择Neon后，点击Continue选择数据库服务器来源，一般选择推荐的就行(结尾带!的就是)，再点击Continue填写数据库名称后，点击Sreate进行创建数据库创建完成后，找到创建好的数据库点击C！onnect填写相关信息在弹出的窗口中直接点击Connect进行连接，其他的可管可不管，但是Custom Prefix那一项不要填！！连接完后，我们需要重新部署。点击Deployments，再点击任意消息旁边的三个点，最后点击Redeploy进行重新部署就完成了手动部署进入Umami的GitHub项目页面，点击Fork进行创建副本分别在Repository name、Description中填上副本的名称和描述(后面可以更改)，然后点击Create fork创建副本在Vercel中，点击Add New，再点击Project找到刚刚创建的副本，点击Import有自建数据库展开Environment Variables环境变量列表，添加DATABASE_URL，添加内容如下：MySQL：mysql://username:password@host:3306/dbnamePostgres：postgresql://username:password@host:5432/dbname注意： 请保证你的数据库版本和支持环境的版本一致，否则将会一直部署失败你需要将其中的username、password、host、port、dbname和端口(3306、5523是大部分默认的端口)替换为你自己数据库的实际信息，然后点击Deploy即可部署无自建数据库请参考一键部署中无自建数据库使用Vercel中免费的数据库的操作这里直接点击点击Deploy部署就行了我推荐的部署方式结论：推荐手动部署，数据库自建或不自建都行(反正我用的是Vercel免费数据库)原因：通过手动部署后，在GitHub上的Umami副本可以一键同步官方仓库的最新代码，点击Sync fork进行同步即可。但是一键部署的Umami副本(应该不叫副本了，因为与官方仓库没有关联了)就不能一键同步。优化配置域名绑定由于Vercel是一款非常出名的前端开发工具和AI云计算服务，所以它提供的免费域名(vercel.app)被很多人滥用，已经在国内打不开了。我们需要在设置中绑定自己的域名，以便Umami正常工作。点击Settings，点击Domains，再点击Add Domain进行添加域名(首次添加域名会验证域名的所有权)，添加成功后会自动申请SSL证书。绕过广告拦截器尽管 Umami 是一款注重隐私的产品，但它仍可能被阻止某些广告拦截器。因为有些拦截器可能过于激进，它们会拦截某些域名关键词或者常见的数据收集接口请求……在Umami环境变量文档(https://umami.is/docs/environment-variables)中提供了两个环境变量以最大限度的绕过广告拦截器。注意：每次更改环境变量后都要重新部署TRACKER_SCRIPT_NAME假如原本的跟踪代码如下：&lt;script defer src=&quot;https://aa.bb.cc/script.js&quot; data-website-id=&quot;xxxxxxxxx&quot;&gt;&lt;/script&gt;但是如果添加了TRACKER_SCRIPT_NAME，并且对应的内容填写了style.css，那么跟踪代码会变成如下：&lt;script defer src=&quot;https://aa.bb.cc/style.css&quot; data-website-id=&quot;xxxxxxxxx&quot;&gt;&lt;/script&gt;当然！style.css可以为任何你喜欢的内容COLLECT_API_ENDPOINT环境变量COLLECT_API_ENDPOINT是用来修改数据收集的接口，其格式是/xxx或/xxx/xxx以此类推等等。如何添加环境变量点击Settings，再点击Environment Variables，在图中标记处添加环境变量，然后点击Save，最后重新部署即可。可以参考我的环境变量填写的内容常见问题问：怎么从Vercel的免费数据库(Neon)导出数据呢？答：因为上述提到的数据库服务商Neon是第三方合作平台，所以要前往第三方导出数据。点击Storage，再点击对应的数据库进入详情页最后点击Open in Neon就可以直接登录到Neon服务商了导出数据的具体操作不过多赘述了，请参考Neon控制台文档(看不懂自行翻译)：https://neon.com/docs/guides/tables问：Neon提供的免费数据库怎么样？答：永远免费：提供无需信用卡、永不过期的免费套餐，包含可观的存储和计算资源。无服务器架构：计算与存储分离，按实际使用量计费，不用时自动暂停，成本极低。即时分支：可以像 Git 一样，为数据库创建多个独立的完整分支，极大提升开发、测试和协作效率。完全兼容 PostgreSQL：支持标准 PostgreSQL 协议、驱动和扩展，迁移和使用无门槛。基于时间点恢复：能够将数据库状态回溯到过去的任意一秒，数据安全更有保障(免费版好像仅支持回溯一天以内)。现代工作流：数据库分支能与 CI/CD 流程无缝集成，适合云原生和敏捷开发。</description>
</item>
<item rdf:about="https://blog.lmb.blue/archives/1420/">
<title>利用猫抓下载直播回放</title>
<link>https://blog.lmb.blue/archives/1420/</link>
<dc:date>2025-01-11T11:41:00+08:00</dc:date>
<description>猫爪🐱众所周知像快手、抖音等平台的直播回放都没有下载功能，这让需要下载直播回放的人犯了难(比如剪辑直播切片)。很多人只能通过录屏的方式保存直播回放，但是“翻版”终究比不过“原版”的质量。那么猫抓(cat-catch) 资源嗅探扩展就能完美解决这个问题，它能筛选列出当前页面的资源并且支持下载等操作，包括直播回放。实践电脑添加扩展我们任意打开Chrome、Edge、Firefox其中一个浏览器(推荐Edge，因为Chrome和Firefox需要翻墙才能添加扩展)，然后打开猫爪的GitHub项目网址找到安装地址，点击Edge的安装地址点击获取进行添加扩展点击右上角的插件图标，检查是否成功添加扩展下载直播回放我这里找了一个游戏主播的直播回放(https://live.kuaishou.com/playback/3x69hnifrg6uwn6)，用Edge浏览器打开https://live.kuaishou.com/playback/3x69hnifrg6uwn6 后，点击右上角的插件图标。这时候猫爪的图标上面有一个1，说明已经嗅探到了1个视频资源，然后点击猫爪图标进入查看。(Tip：如果想更换画质可以直接更换直播回放中的画质，然后刷新即可)在这里不要点击下载，因为直播回放通常是m3u8格式，直接下载浏览器只会保存为几百KB的文件先在下载范围中填写1-1，下载出来就是第1个切片，查看切片时长是多少秒。再计算片段的切片范围开始是多少个切片和结尾是多少个切片，最后开始的切片到结尾的切片就是下载范围。举个栗子：假如第一个切片是3秒，那么1小时10分钟到1小时30分钟的下载范围就是1400-1800这是小学的数学问题，这都不会那建议放弃吧:[blobcatfacepalm] {/bs-accord}</description>
</item>
<item rdf:about="https://blog.lmb.blue/archives/1348/">
<title>具体使用unlock-music项目解锁各大音乐平台的加密格式</title>
<link>https://blog.lmb.blue/archives/1348/</link>
<dc:date>2024-11-15T18:35:00+08:00</dc:date>
<description>话说继上次记录了一次帮同学解锁歌曲并转换到MP3后，只尝试了QQ音乐(.mgg/.mflac)加密格式。但是unlock-music项目还可以解锁网易云音乐(.ncm)、酷狗音乐(.kgm/.vpr)、酷我音乐(.kwm)、虾米音乐(.xm)、咪咕音乐(.mg3d)等等，详情见：https://git.unlock-music.dev/um/web/src/branch/main/README.md然后今天想用unlock-music项目尝试解锁网易云音乐、酷狗音乐、酷我音乐并记录使用该项目的过程、结果以及遇到的问题实践为了实践的统一性，所以将邓紫棋的《倒数》 用于下载演示的VIP歌曲()本次实践的音乐软件只开通了基础会员(因为没钱开通最高级会员:[哈士奇] )，并且歌曲下载至所属音乐软件基础会员的最高音质如果没有具体说明演示音乐软件版本号，那么均为目前官方最新版本在线使用音乐解锁＆Unlock-Music： https://unlock-music.lmb520.cn/QQ音乐Android下载歌曲默认保存路径：/Music/qqmusic/song/下载的音质解锁前的格式是否成功解锁是否成功播放解锁后的格式标准.mgg0.flac❎❎️ HQ高品质.mgg2.flac❎️❎️ SQ无损.mflac0.flac❎️❎️ Windows经过测试QQ音乐版＞19.51虽然可以解锁，但是会播放失败。只有≤19.51版本才可以正常解锁和播放QQ音乐 V19.51版本 ： https://www.123865.com/s/tNNLjv-WH8yh下载的音质解锁前的格式是否成功解锁是否成功播放解锁后的格式软件版本标准.mgg✅️✅️oggV19.51HQ高品质.mgg✅️✅️oggV19.51SQ无损.mflac✅️✅️flacV19.51网易云音乐Android下载歌曲默认保存路径：/Download/netease/cloudmusic/Music/下载的音质解锁前的格式是否成功解锁是否成功播放解锁后的格式标准.ncm✅️✅️.mp3极高.ncm✅️✅️.mp3无损.ncm✅️✅️.flac高清臻音.ncm✅️✅️.flacWindows下载的音质解锁前的格式是否成功解锁是否成功播放解锁后的格式标准.ncm✅️✅️.mp3极高.ncm✅️✅️.mp3无损.ncm✅️✅️.flac高清臻音.ncm✅️✅️.flac酷狗音乐Android下载歌曲默认保存路径：/Download/kgmusic/download/kgmusic/目前经过测试只有≤12.5.0版本的酷狗音乐或者最新版的酷狗音乐概念版才是.kmg加密格式酷狗音乐概念版下载歌曲默认保存路径：/Download/KuGouLite/Music/酷狗音乐 V12.5.0版本： https://www.123912.com/s/tNNLjv-QLuyh用Android下载歌曲会遇到一个问题，就是无论下载什么音质，歌曲格式都是.kgm.flac，如下图其实这个.flac只是伪装而已，这时候只需要将.kgm.flac改为.kgm就可以解锁了，如下图有人可能会说：“系统自带的文件管理器不让改文件后缀~”，不让改你不会下载一个其他的文件管理器嘛(推荐MT管理器)下载的音质解锁前的格式是否成功解锁是否成功播放解锁后的格式软件版本标准.kgm✅️✅️.mp3V12.5.0高品.kgm✅️✅️.mp3V12.5.0无损.kgm✅️✅️.flacV12.5.0Hi-Res.kgm✅️✅️.flacV12.5.0Windows最新版本下载歌曲的加密格式已经不再是.kmg，而是被改为了.kgg了。目前经过测试只有≤11.0.82版本的酷狗音乐才是.kmg加密格式酷狗音乐 V11.0.82版本： https://www.123865.com/s/tNNLjv-fF8yh下载的音质解锁前的格式是否成功解锁是否成功播放解锁后的格式软件版本标准.kgm✅️✅️.mp3V11.0.82高品.kgm✅️✅️.mp3V11.0.82无损.kgma✅️✅️.flacV11.0.82Hi-Res.kgma✅️✅️.flacV11.0.82酷我音乐Android下载歌曲默认保存路径：/Download/KuwoMusic/music/encryptType/下载的音质解锁前的格式是否成功解锁是否成功播放解锁后的格式高品.ogg未加密未加密 超品.mp3未加密未加密 无损.flac未加密未加密 Windows下载的音质解锁前的格式是否成功解锁是否成功播放解锁后的格式高品.mp3未加密未加密 超品.mp3未加密未加密 无损.flac未加密未加密 插一嘴酷我音乐的会员用户有300首/每月的VIP歌曲下载量，再花4元还可以增加300首VIP歌曲的下载量。已经下载过的歌曲，再次下载或者升级音质都不会消耗下载量我想知道把下载量永远后会怎样，然后我就一口气下载了300首VIP歌曲。我以为用完下载量后，再次下载其他歌曲就会被加密为.kwm格式，但是结果并非如此，Android和Windows都提示充值4元获取300首下载量才可以继续下载，并没有出现下载加密歌曲的结果。尽管Window端下载页面提示“中国大陆地区，会员下载的部分付费歌曲格式为.kwm，仅限酷我音乐播放”，但是下载的300多首歌曲中没有一歌曲为.kwm的格式提示ogg和flac已经是解锁后的歌曲格式了，如果要转换成其他格式只需要在网上寻找相应的工具即可。因为音质太高可能会导致解锁失败所以如果你不是音乐狂热者，选择无损音质就可以了如果你最后要转换为mp3格式的话，选择标准和高品质就行了总结各家音乐软件将歌曲加密无非就是让用户留在自家音乐软件里，不得不说腾讯的加密做的真好，但是唯一让我眼前一亮的是酷我音乐。我今天才发现酷我音乐居然没有像其它音乐软件一样给所有下载的会员歌曲进行加密，这样很方便用户移动到其他便携设备里，虽然每个月只有300首下载量，但是对于普通用户已经够了(我第一次使用的感觉)。注意本文仅做学习交流使用</description>
</item>
<item rdf:about="https://blog.lmb.blue/archives/1323/">
<title>成功解锁QQ音乐mgg、mflac加密格式过程</title>
<link>https://blog.lmb.blue/archives/1323/</link>
<dc:date>2024-10-17T01:18:00+08:00</dc:date>
<description>话说作为班上唯一网络gai溜子，自从去盗版网站找到了需要会员才可以看的电影后，同学们可谓是觉得我无所不能，小到让我找小视频大到让我黑进门禁系统:[出家人] 。今天也是一样有同学让我帮他下载歌曲到他的mp3里面，我想着去网上随便搜搜然后答应了，结果他甩给我一百多歌的QQ音乐歌单，害……遇见问题众所周知从各大音乐平台下载音乐有很多歌曲会被加密专属播放格式，例如QQ音乐的mgg和mflac，这样就导致其他设备或者播放器无法播放。关于mgg、mflac： mgg(标准品质、HQ高品质)和mflac(SQ无损品质、臻品全景声、臻品母带)格式是QQ音乐为了保护音乐版权而使用的加密音频格式。‌ 这种格式的文件在其他音频或媒体播放器上无法直接播放，只有通过特定的解密和转换方法，才能将其变为更通用的格式，如ogg、mp3、flac等格式。解决问题解密音乐有一个unlock-music项目可以解锁加密的音乐文件，可以按照教程本地部署代码进行使用。使用也很简单，只需要把解密的音乐拖进去，它是使用浏览器多线程批量解密，不需要上传就能快速解密。支持的格式： QQ 音乐(.qmc0/.qmc2/.qmc3/.qmcflac/.qmcogg/.tkm)Moo 音乐格式 (.bkcmp3/.bkcflac/...)QQ 音乐 Tm 格式 (.tm0/.tm2/.tm3/.tm6)QQ 音乐新格式 (.mflac/.mgg/.mflac0/.mgg1/.mggl)QQ 音乐海外版JOOX Music (.ofl_en)网易云音乐格式 (.ncm)虾米音乐格式 (.xm)酷我音乐格式 (.kwm)酷狗音乐格式 (.kgm/.vpr)Android 版喜马拉雅文件格式 (.x2m/.x3m)咪咕音乐格式 (.mg3d)项目地址： https://git.unlock-music.dev/um/web在线使用音乐解锁： https://unlock-music.lmb520.cn但是经过搜寻和测试QQ音乐只能解锁电脑端版本≤19.51下载的音乐，其他平台具体看：https://blog.lmb.blue/archives/1348/19.51版本QQ音乐： https://www.123865.com/s/tNNLjv-WH8yh转换格式解密后mgg格式会变成ogg格式，mflac格式会变成flac格式。这两种格式已经可以让很多设备或播放器播放了，但是我同学用的mp3，只能播放mp3格式的音乐。所以需要转换格式，市面上很多都需要充值，我推荐格式工厂(电脑端全部免费，手机端批量处理需要会员)(http://pcgeshi.com/)解锁其他音乐软件注意本文仅做学习交流使用</description>
</item>
<item rdf:about="https://blog.lmb.blue/archives/1271/">
<title>给BearSimple主题加一个友链随机跳转</title>
<link>https://blog.lmb.blue/archives/1271/</link>
<dc:date>2024-05-07T18:30:00+08:00</dc:date>
<description>话说因为BearSimple主题功能太多，昨天才发现有一个幻灯片的功能没使用，但是我好像没有什么东西可以放上去，思来想去好像可以做一个友链随机跳转。本站随机跳转链接(点击幻灯片一样的效果)：https://blog.lmb.blue/other/links-go.php实现BearSimple有独立的友链数据库表，所以可以直接用php连接数据库获取友链链接，进行随机访问。中间过渡页面是使用开往的plain简洁版页面(作者是：Lifeni)具体代码如下：&lt;?php
// 数据库配置
$config = [
    &#039;host&#039;     =&gt; getenv(&#039;DB_HOST&#039;) ?: &#039;127.0.0.1&#039;,
    &#039;user&#039;     =&gt; getenv(&#039;DB_USER&#039;) ?: &#039;lmb520&#039;,
    &#039;password&#039; =&gt; getenv(&#039;DB_PASS&#039;) ?: &#039;lmb520lmb520&#039;,
    &#039;dbname&#039;   =&gt; getenv(&#039;DB_NAME&#039;) ?: &#039;lmb520&#039;
];

// 初始化变量
$hasValidLink = false;
$randomLink = [&#039;url&#039; =&gt; &#039;&#039;, &#039;name&#039; =&gt; &#039;&#039;];
$errorMessage = &#039;&#039;;

// 连接数据库并获取随机友链
try {
    // 创建连接（启用异常模式）
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    $conn = new mysqli($config[&#039;host&#039;], $config[&#039;user&#039;], $config[&#039;password&#039;], $config[&#039;dbname&#039;]);
    $conn-&gt;set_charset(&#039;utf8mb4&#039;);

    // 查询所有已批准的友链
    $stmt = $conn-&gt;prepare(&quot;SELECT friendurl, friendname FROM typecho_bscore_friendlinks WHERE status = &#039;approved&#039;&quot;);
    $stmt-&gt;execute();
    $result = $stmt-&gt;get_result();

    $links = [];
    while ($row = $result-&gt;fetch_assoc()) {
        $url = $row[&#039;friendurl&#039;];
        $name = $row[&#039;friendname&#039;];

        // 严格验证URL：必须包含协议且为http/https，防止危险协议
        if (filter_var($url, FILTER_VALIDATE_URL)) {
            $scheme = parse_url($url, PHP_URL_SCHEME);
            if ($scheme === &#039;http&#039; || $scheme === &#039;https&#039;) {
                $links[] = [&#039;url&#039; =&gt; $url, &#039;name&#039; =&gt; $name];
            }
        }
    }

    $stmt-&gt;close();
    $conn-&gt;close();

    // 随机选取一个有效友链
    if (!empty($links)) {
        $hasValidLink = true;
        $randomLink = $links[array_rand($links)];
    } else {
        $errorMessage = &#039;暂无可用的友情链接，请稍后再试或申请加入友链。&#039;;
    }
} catch (mysqli_sql_exception $e) {
    // 数据库错误：记录日志，但不暴露敏感信息给用户
    error_log(&#039;Database error in random link page: &#039; . $e-&gt;getMessage());
    $errorMessage = &#039;系统繁忙，请稍后再试。&#039;;
} catch (Exception $e) {
    error_log(&#039;Unexpected error: &#039; . $e-&gt;getMessage());
    $errorMessage = &#039;发生未知错误，请联系管理员。&#039;;
}

// 准备跳转相关数据（安全转义）
$redirectUrl = $hasValidLink ? $randomLink[&#039;url&#039;] : &#039;&#039;;
$redirectName = $hasValidLink ? htmlspecialchars($randomLink[&#039;name&#039;], ENT_QUOTES, &#039;UTF-8&#039;) : &#039;&#039;;
$jsonUrl = json_encode($redirectUrl, JSON_UNESCAPED_SLASHES | JSON_HEX_TAG);
?&gt;
&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;zh&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;IE=edge&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;meta name=&quot;description&quot; content=&quot;沉墨满纸，一笑若白。——林墨白&quot;&gt;
    &lt;title&gt;星际穿梭中 - 哈喽！林墨白&lt;/title&gt;
    &lt;link rel=&quot;shortcut icon&quot; href=&quot;https://files.blog.lmb520.cn/assets/img/logo/pink-black.png&quot;&gt;
    &lt;link rel=&quot;stylesheet&quot; href=&quot;https://files.blog.lmb520.cn/assets/css/links-go.css&quot;&gt;
    &lt;?php if ($hasValidLink): ?&gt;
    &lt;script&gt;
        // 安全跳转：3秒后自动跳转
        setTimeout(function() {
            window.location.replace(&lt;?php echo $jsonUrl; ?&gt;);
        }, 3000);
    &lt;/script&gt;
    &lt;?php endif; ?&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;main&gt;
    &lt;h1&gt;
        &lt;span&gt;哈喽！林墨白&lt;/span&gt;
        &lt;?php if ($hasValidLink): ?&gt;
        &lt;span&gt;正在驶入“&lt;?php echo $redirectName; ?&gt;”星云&lt;/span&gt;
        &lt;?php else: ?&gt;
        &lt;span&gt;星云导航暂时中断&lt;/span&gt;
        &lt;?php endif; ?&gt;
    &lt;/h1&gt;

    &lt;?php if ($hasValidLink): ?&gt;
    &lt;!-- Material Design 风格加载动画 --&gt;
    &lt;svg class=&quot;spinner&quot; width=&quot;32px&quot; height=&quot;32px&quot; viewBox=&quot;0 0 66 66&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
        &lt;circle class=&quot;path&quot; fill=&quot;none&quot; stroke-width=&quot;6&quot; stroke-linecap=&quot;round&quot; cx=&quot;33&quot; cy=&quot;33&quot; r=&quot;30&quot;&gt;&lt;/circle&gt;
    &lt;/svg&gt;
    &lt;?php else: ?&gt;
    &lt;div class=&quot;error-message&quot; style=&quot;margin: 2rem auto; text-align: center; color: #ff6b6b;&quot;&gt;
        &lt;p&gt;&lt;?php echo htmlspecialchars($errorMessage, ENT_QUOTES, &#039;UTF-8&#039;); ?&gt;&lt;/p&gt;
        &lt;p&gt;您可以选择返回首页或申请加入友链。&lt;/p&gt;
    &lt;/div&gt;
    &lt;?php endif; ?&gt;
&lt;/main&gt;

&lt;footer&gt;
    &lt;a href=&quot;https://blog.lmb520.cn/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;返回首页&lt;/a&gt;
    &lt;a href=&quot;https://blog.lmb520.cn/links.html&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;加入友链&lt;/a&gt;
    &lt;a href=&quot;https://github.com/Lifeni&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;模板作者&lt;/a&gt;
    &lt;span&gt;&lt;/span&gt;
    &lt;a href=&quot;https://beian.miit.gov.cn/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;蜀ICP备-2023019525号-1&lt;/a&gt;
&lt;/footer&gt;
&lt;/body&gt;
&lt;/html&gt;里面的css调用代码可以将&lt;link rel=&quot;stylesheet&quot; href=&quot;https://files.blog.lmb520.cn/assets/css/links-go.css&quot;&gt;改为&lt;style&gt;
      /* 色板：https://www.materialui.co/colors */
      * {
        box-sizing: border-box;
        margin: 0;
        padding: 0;
      }

      body {
        font-family: Inter, -apple-system, HarmonyOS Sans SC, MiSans,
          Source Han Sans SC, Noto Sans SC, system-ui, Roboto, emoji, sans-serif;
        color: black;
        background: white;
        font-weight: 400;
        font-size: 1rem;
        min-height: 100vh;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
      }

      main {
        padding: 2rem;
        flex: 1;
        display: flex;
        gap: 2rem;
        flex-direction: column;
        align-items: center;
        justify-content: center;
      }

      main h1 {
        margin-top: 4rem;
        font-size: 1.75rem;
        font-weight: 700;
        line-height: 1.75;
        text-align: center;
      }

      main h1 span {
        white-space: nowrap;
      }

      footer {
        width: 100%;
        display: flex;
        flex-wrap: wrap;
        gap: 0.5rem 1.5rem;
        align-items: center;
        justify-content: center;
        padding: 1.75rem 2rem;
      }

      footer a {
        font-size: 0.875rem;
        text-decoration: none;
        color: #757575;
        transition: all 0.2s;
      }

      footer span {
        flex: 1;
      }

      footer a:hover {
        color: #3f51b5;
        text-decoration: underline;
        text-underline-offset: 0.25rem;
      }

      @media (prefers-color-scheme: dark) {
        body {
          color: #eeeeee;
          background: #212121;
        }

        footer a {
          color: #bdbdbd;
          transition: all 0.2s;
        }

        footer a:hover {
          color: #5c6bc0;
        }
      }

      @media screen and (max-width: 768px) {
        main {
          margin-top: 4.5rem;
        }

        main h1 {
          font-size: 1.5rem;
        }

        footer {
          gap: 0.5rem 1rem;
        }

        footer span {
          display: none;
        }
      }

      /* Material Design 风格的加载动画 https://codepen.io/mrrocks/pen/ExLovj  */
      .spinner {
        -webkit-animation: rotator 1.4s linear infinite;
        animation: rotator 1.4s linear infinite;
      }

      @-webkit-keyframes rotator {
        0% {
          transform: rotate(0deg);
        }
        100% {
          transform: rotate(270deg);
        }
      }

      @keyframes rotator {
        0% {
          transform: rotate(0deg);
        }
        100% {
          transform: rotate(270deg);
        }
      }

      .path {
        stroke-dasharray: 187;
        stroke-dashoffset: 0;
        transform-origin: center;
        -webkit-animation: dash 1.4s ease-in-out infinite,
          colors 5.6s ease-in-out infinite;
        animation: dash 1.4s ease-in-out infinite,
          colors 5.6s ease-in-out infinite;
      }

      @-webkit-keyframes colors {
        0% {
          stroke: #4285f4;
        }
        25% {
          stroke: #de3e35;
        }
        50% {
          stroke: #f7c223;
        }
        75% {
          stroke: #1b9a59;
        }
        100% {
          stroke: #4285f4;
        }
      }

      @keyframes colors {
        0% {
          stroke: #4285f4;
        }
        25% {
          stroke: #de3e35;
        }
        50% {
          stroke: #f7c223;
        }
        75% {
          stroke: #1b9a59;
        }
        100% {
          stroke: #4285f4;
        }
      }
      @-webkit-keyframes dash {
        0% {
          stroke-dashoffset: 187;
        }
        50% {
          stroke-dashoffset: 46.75;
          transform: rotate(135deg);
        }
        100% {
          stroke-dashoffset: 187;
          transform: rotate(450deg);
        }
      }
      @keyframes dash {
        0% {
          stroke-dashoffset: 187;
        }
        50% {
          stroke-dashoffset: 46.75;
          transform: rotate(135deg);
        }
        100% {
          stroke-dashoffset: 187;
          transform: rotate(450deg);
        }
      }
&lt;/style&gt;因为有可能我会移动样式文件，但是我移动后也会及时更新除非我忘了，所以建议自己放在代码里或者找个地方储存调用注意代码里面有很多需要自己按情况修改，比如数据库信息、网页内容、网站图标等等</description>
</item>
<item rdf:about="https://blog.lmb.blue/archives/1011/">
<title>在Woiden白嫖理论上的永久NAT VPS</title>
<link>https://blog.lmb.blue/archives/1011/</link>
<dc:date>2024-01-16T21:04:00+08:00</dc:date>
<description>前言这篇文章本来已经写好了有个三四天。但是准备发布的时候，Woiden的服务器又出了问题，导致所有NAT VPS用不了，这让我无法了解Woiden的NAT VPS服务器，所以迟迟不发布。:^(困)NAT VPSNAT VPS是共享同一个公网ip(v4)地址，经过端口映射方式与外界通讯和提供服务的VPS。NAT VPS的主要缺点是能使用的端口有限制，通常十个左右，而且大多数商家不容许选择端口号。但NAT VPS有它盖不住的优势：便宜。NAT VPS省去了ip费用，带宽也是共享的，价格通常比普通vps要便宜很多。但是Woiden的NAT VPS没有共享ipv4，但是有ipv6，不懂的自己百度白嫖教程！注册账号注意：1、这个网站有很多广告，点的时候不要点到了。2、进入网站前你需要关闭广告拦截器，否则会出现以下错误白嫖链接🔗：https://woiden.id/首先你需要一个Telegram(电报)账号，没有的可以参考以下文章进行注册，因为Woiden需要通过Telegram(电报)注册注册链接🔗：https://woiden.id/register/这里需要打开你的Telegram(或第三方客户端)，点击顶部搜索@HaxTG_bot对机器人发送/start，机器人就会给你发送你的Telegram ID在注册页面输入你的Telegram ID，点击Submit，你的Telegram账号就会收到一条@HaxTG_bot给你发的验证码消息第一行填验证码，第二行填你的密码，点击Submit完成注册点击链接🔗：https://woiden.id/login/  进行登录，在登录页面点击Log in with Telegram如果没有显示请换浏览器在Telegram授权登录页面，选择国家并输入你的手机号，点击NEXT然后Telegram官方会给你发送一条登录验证消息，点击Confirm进行确认，返回到浏览器你就会看到登录成功了在网页出现了这样的授权页面后，Telegram官方又会给你发送一条确认授权的消息点击Terminate session，Telegram账号就可以成功授权Woiden了免费创建NAT VPS点击链接🔗：https://woiden.id/create-vps/然后就会让你填写信息第一个是：Data Center(选择数据中心)第二个是：Operating System(选择操作系统)第三个是：Password(密码，仅限字母和数字)第四个是：VPS Purpose(选择VPS用途)剩下的是人机验证和全部打勾最后点击CREATE VPS就可以免费创建NAT VPS，等待几分钟后你就可以在：https://woiden.id/vps-info 页面看见NAT VPS的信息了，在VPS Information你可以看到你的IPV6等信息这里顺便介绍一下，这一些链接的作用VPS信息|VPS状态|重新安装VPS|重置VPS密码|关机和重启VPS|Web在线终端给NAT VPS免费续期为什么说是理论上永久呢？因为他第一次创建，NAT VPS只有3天使用时间，然后NAT VPS还剩3天时间的时候你就可以去免费续期了，续一次增加2天。 所以说只要你记住定时给它续期，它就是永久，如果记不住就销毁了，但是销毁了又可以重新创建NAT VPS。续期链接🔗：https://woiden.id/vps-renew/你也可以点击Extend VPS Expiration进入续期页面这里也顺便介绍一下这几个链接的功能VPSVPS的状态重新安装VPS重置VPS密码延长VPS到期期限关机和重启VPS工具Web 在线终端文件管理器话说回来，进入延期界面后，你需要在第一个框输入Woiden.id，第二个框要计算一下加减乘除题，然后点击Renew VPS如果出现以下界面就算是申请延期成功如果出现以下页面就说明你人机验证失败了，需要刷新页面重新验证(验证失败很多次是很正常的，我觉得很鸡肋，多次失败可以试试换浏览器或者换VPN网络)点击INPUT RENEW CODE进入下一步，进入以下页面后，Woiden官方会通过Telegram给你发送一天验证码复制验证码，粘贴到一个框，再计算一道加减乘除题和人机验证后你就可以点击Renew VPS，如果出现以下页面就说明已经成功续期了，如果不是的话就说明人机验证没通过或者验证码错了(只要认证。几乎没有错误)最后除了可以在Woiden上白嫖NAT VPS，还可以在Hax(https://hax.co.id/)上白嫖NAT VPS，这俩都是同一个团队开发出来的，所以操作方式也几乎一样。这俩相同点是： 都是只有IPV6(不清楚Woiden以后会不会加共享IPV4)这俩不同点是： Woiden几乎每天不限量随时可以创建，而Hax只能在凌晨1点左右靠抢，Hax也需要VPN访问。Woiden和Hax也是同一个Telegram交流群：https://t.me/ipv6china结语这就是关于“在Woiden白嫖理论上的永久NAT VPS”所有教程我会最近更新使用在Woiden白嫖的NAT VPS上安装宝塔面板和仅使用IPV6进行建站2024年1月20日更新由于Woiden的NAT VPS老是出现ssh连不上，服务器炸了等问题，导致我无法继续尝试用它建站提供思路使用Woiden自带的终端，在线连接SHH并安装宝塔找一个可以用ipv6的CDN服务商，这里推荐两个(域名未备案:Cloudflare，域名已备案:括彩云使用ipv6打开宝塔面板，在宝塔绑定域名，然后在CDN也配置好域名后面就可以通过域名建站了</description>
</item>
<item rdf:about="https://blog.lmb.blue/archives/943/">
<title>注册Telegram(电报)收不到短信？手把手教你如何搞定</title>
<link>https://blog.lmb.blue/archives/943/</link>
<dc:date>2024-01-10T11:23:00+08:00</dc:date>
<description>关于Telegram介绍Telegram（非正式简称TG或电报）是跨平台的即时通讯软件，其客户端是自由及开放源代码软件，但服务器端是专有软件。用户可以相互交换加密与自毁消息（类似于“阅后即焚”），发送照片、影片等所有类型文件。官方提供手机版（Android、iOS、Windows Phone）、桌面版（Microsoft Windows、macOS、Linux）和网页版等多种平台客户端；同时官方开放应用程序接口（API），因此拥有许多第三方的客户端可供选择，其中多款内置中文。目前使用缺点国内很多时候屏蔽了Telegram发送的验证码，但是Telegram登录和注册不得不接收Telegram发送的验证码需要连接VPN才可以访问那么该如何注册呢？Telegram中文版下载针对以上两种问题，我们找到了一款不用VPN并且可以接收到Telegram验证码的软件：BtokBtok下载链接：https://btok360.com/其实我觉得APP这个头像好丑呀Btok可以称为Telegram中文版了，里面全是操作页面和Telegram原版一模一样，而是全是中文，这里可以对比一下，非常适合中国宝宝这都是钱的教训，曾经有一个人年少无知，在Telegram被骗了700多，不要问是谁？反正不是我:^(流泪) :^(流泪) </description>
</item>
<item rdf:about="https://blog.lmb.blue/archives/906/">
<title>免费白嫖Dewlance永久虚拟主机</title>
<link>https://blog.lmb.blue/archives/906/</link>
<dc:date>2024-01-09T08:36:00+08:00</dc:date>
<description>什么是DewlanceDewlance® was founded In Feb' 2009 by Chandra Prakash. This site has been considered above all other existing sites. It consist of 6 hard working and quality assuring professionals. We work as a team to provide solutions at low cost and high quality assurance. Our servers are specially built to ensure reliability and durability at all time.皇家翻译(仅供参考)： Dewlance®由Chandra Prakash于2009年2月创立。该场地已被视为高于所有其他现有场地。它由6名辛勤工作和质量保证的专业人员组成。我们作为一个团队以低成本和高质量保证提供解决方案。我们的服务器是专门建造的，以确保在任何时候都具有可靠性和耐用性。白嫖虚拟主机主机配置1GB磁盘空间50GB/月 流量DirectAdmin面板后台可免费申请SSL仅英国地区可以绑定1个主域名(lmb520.cn)和2个子域名(blog.lmb520.cn)2个MySQL数据库5个FTP账号目前发现免费主机白嫖账号没有数量上限(反正我白嫖了20个主机了)友好的功能前台和后台支持中文前台和后台不用VPN访问访问速度相比于其它外国服务器很快不需要国外信用卡，直接免费领取不限制邮箱登录，不用邮箱验证开始白嫖！！白嫖链接🔗：https://www.dewlance.com/free-hosting选择0 - Free，不建议选择6 YEARLY，因为我们是白嫖:^(色)选择I will use my existing domain and update my nameservers，域名里面可以乱填，反正控制面板可以改的这里可以选择中文，只不过是繁体的这里直接点：Checkout这里是填写购买和创建用户信息，除了我标红的地方其他的都可以乱填，填完了就可以点Complete Order了订购完，再点击Continue To Client Area进入用户中心，中间给你发邮件是给你查看账单信息，也可以不用管它。点击Services进入管理虚拟主机页面，点击你的虚拟主机进入虚拟主机详情页(不要点域名，比如我的43646.343164，不然会给你跳转访问域名)然后点击Login to DirectAdmin进入虚拟主机后台DirectAdmin控制面板进去后在底部可以更改语言，更改的时候可以直接打出中文就会出现简体中文了你也可以点击顶部的小人，再点击Skin Options这个也是可以直接打出中文就可以直接选择中文简体了域名解析在主机详情页最下面，有一个Hosting Information，里面有一个信息是Server Name这个就是域名使用CNAME解析地址，下面是我的解析操作后面搭建网站什么的应该不用教了吧，不会的百度：如何使用DirectAdmin面板搭建网站OK，结束🔚！2024年1月9日17点更新呃呃呃呃呃，一个账号不能白嫖多了，我因为白嫖了20多个被官方制裁了号没了，测试站准备重新建2024年1月19日更新删除演示站点</description>
</item>
<item rdf:about="https://blog.lmb.blue/archives/770/">
<title>搭建基于UptimeRobot接口的站点监测网站</title>
<link>https://blog.lmb.blue/archives/770/</link>
<dc:date>2023-12-25T08:39:00+08:00</dc:date>
<description>什么是UptimeRobot王子公主请看以前的文章开始上次介绍了通过UptimeRobot免费监测网站状态并使用邮箱＋APP进行通知，有没有一种可能假如手机突然掉了，然后就……刚好想看一下自己的网站还在没在正常运行呢1号演示站点：http://1.test.lmb520.cn/这是原作者搭建的：https://status.baiwumm.com/搭建顺序我们这里使用的是由白雾茫茫基于UptimeRobot编写的源码：我们进入Github项目，然后下载项目源码改写.env文件第7、8行里的VITE_API_KEY一定要改成自己UptimeRobot账号里的Read-Only API Key（不改就是监测作者的网站）将打包后的文件上传至网站空间或者直接使用 Vercel 或者 Cloudflare 直接部署该项目构建项目你下载的源码，不可以直接上传到空间里，需要自行构建打包项目。然后才可以上传到空间使用PHP进行建站不会构建打包的话，可以百度。实在不行的话，可以把.env文件修改后通过邮箱（lmb@lmb520.cn）发给我并在本文评论一下发送邮箱（不然我怕看不到）安装环境（不可以跳过）# 若没有 pnpm
npm install pnpm -g
# 安装依赖
pnpm install进行开发（可以跳过这一步）pnpm dev最后打包（不可以跳过）pnpm build最后构建成功的源码会在dist文件夹，然后上传到空间上就可以了</description>
</item>
<item rdf:about="https://blog.lmb.blue/archives/671/">
<title>通过UptimeRobot免费监控网站状态并使用邮箱＋APP进行通知</title>
<link>https://blog.lmb.blue/archives/671/</link>
<dc:date>2023-08-10T15:16:00+08:00</dc:date>
<description>关于UptimeRobotUptimeRobot是一个国外的网络监控服务，旨在帮助网站和在线服务监测其可用性和性能。它会定期检查网站或服务是否正常运行，并在发现故障或异常时发送警报通知给用户。使用UptimeRobot可以帮助网站管理员快速识别并解决潜在的故障，以确保网站的稳定和可靠性。官网：https://uptimerobot.com/ (可以不用科学上网)如何使用注册点击链接直接注册：https://uptimerobot.com/signUp然后依次输入：你的名字(随便输入就行)邮箱(需要验证，登录时需要用密码(必填，而且不能忘了)哪里知道的UptimeRobot(选项，可以不用选)然后点击注册，一会儿就会收到UptimeRobot给你发的验证邮件，验证成功后就可以登录了。添加监控项目登录进去后，你会看到这个界面点击左上角的＋Monitor进行添加项目，会弹出一个窗口，第一个选项是选择监控类型，有4种免费的1种付费的HTTP(s)：用于监控网页是否能打开正常(像404，403等都不算正常)。并且可以设置监控周期Monitoring Interval(免费的最低5分钟)和监控超时时间Monitor Timeout(单位为秒，每次监控时超过设置的时间也算不正常)Keyword：用于监控网页中是否含有设置的关键词。注意的是选择Alert When时，Keyword Exists代表网页包涵关键词数据时就警告，Keyword Not Exists代表网页不包涵关键词数据时就警告ping：用于监控网址或IP能否被ping通port：用于监控网址或IP能否访问。请在Port选择你要监控的端口，如果选择Costom Port为自定义端口Heartbeat：心跳模式，配置在服务器。很麻烦而且要付钱，所以就不叙述了为啥没有演示图，因为没付钱，所以它不让我选择Heartbeat所有监控类型中的配置项有PRO和PAID都是要钱的，就不用想了。然后将免费的配置项填完后，记得把通知联系人的邮箱给勾选上最后点击确定就行了！注意：再添加监控项目的时候可能会出现类似下面的弹窗，直接点Close就关闭了使用APP进行通知Android App：①谷歌商店(需要科学上网)②蓝奏云，密码:lmb520(随缘更新)iPhone APP：APP Store或者在APP Store直接搜索UptimeRobot这里演示的Android，因为没钱买iPhone:^(流泪) 打开APP，然后登录自己的账号，首页会看见你所以监控的项目，找个监控项目点进去，会出现以下界面，把右上角的铃铛点绿就行了，记得把UptimeRobot APP设置后台与开机自启动、允许通知、允许后台耗电在APP上你也可修改和添加监控项目，在网站上添加监控项目时会发现多了一个手机通知方式最后可以在APP设置中或者网站中(UptimeRobot Settings)更改手机名称OK，结束</description>
</item>
<item rdf:about="https://blog.lmb.blue/archives/662/">
<title>博客接入TianliGPT实现自动生成文章的AI摘要</title>
<link>https://blog.lmb.blue/archives/662/</link>
<dc:date>2023-08-08T15:44:00+08:00</dc:date>
<description>什么是TianliGPT？TianliGPT是一个专业的文字摘要生成工具，你可以将需要提取摘要的文本内容发送给TianliGPT，稍等一会他就可以给你发送一个基于这段文本内容的摘要，最近又增加了一个随机文章的功能。实时生成的摘要自动生成，无需人工干预一次生成，再次生成无需消耗key包含文字审核过滤，适用于中国大陆支持中国大陆访问极速生成，无需等待价格优惠！哈喽！林墨白已经接入了TianliGPTTianliGPT开发者与维护者后端开发与维护：Tianli大佬产品设计与前端：张洪Heo大佬如何接入TianliGPT如何购买KeyKey可以到https://store.zhheo.com/?cid=1&mid=3 中购买，原价8.99元5万字符，价格挺优惠的。已经请求过的内容再次请求不会消耗key，可以无限期调用使用。购买后登录TianliGPT(https://summary.zhheo.com/)控制后台绑定密钥Key，再绑定域名接入代码目前有两种前端：Heo前端轻笑前端这两种前段的话，Heo前端目前来说比较简约，轻笑前端有几个功能。进入喜欢的前端项目，然后复制代码部署，如果有能力也可以自己写前端。部署代码这里演示的是Heo前端，首先我们先进入项目Github仓库，复制代码&lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdn1.tianli0.top/gh/zhheo/Post-Abstract-AI@0.11/tianli_gpt.css&quot;&gt;
&lt;script&gt;
let tianliGPT_postSelector = &#039;#post #article-container&#039;;
let tianliGPT_key = &#039;lmb5201314&#039;;
&lt;/script&gt;
&lt;script src=&quot;https://cdn1.tianli0.top/gh/zhheo/Post-Abstract-AI@0.11/tianli_gpt.js&quot;&gt;&lt;/script&gt;注意！你需要改的地方：let tianliGPT_postSelector = &#039;#post #article-container&#039;;将#post #article-container改为模板相对应的文章内容所在的元素属性的选择器，这个可能不懂。在下一步讲解let tianliGPT_key = &#039;lmb5201314&#039;;将lmb5201314改为TianliGPT后台对应的密钥Key最后把代码放进模板自定义底部里面，如果模板设置没有自定义底部，那就把代码放进模板foot.php里面，访问自己的文章就行了。如何找到文章内容所在的元素属性的选择器第一种(自行解决)：请跳转到张洪Heo大佬写的教程https://flowus.cn/share/7a353126-f225-4e5c-8c11-f5adefe85b7f ，挺详细的。第二种(求助张洪Heo大佬)：先去项目Github仓库https://github.com/zhheo/Post-Abstract-AI 然后去提交new Issues(新问题)内容包涵：模板名称＋模板源码链接已经适配好的模板，会写在项目中，提交Issues前请去看一下你的模板有没有被适配好最后该TianliGPT生成AI摘要理论上适用于动态或静态页面，所以不论你是用的typecho还是Hexo，甚至WordPress等其他系统几乎都可以接入使用</description>
</item>
<item rdf:about="https://blog.lmb.blue/archives/656/">
<title>手机验证码登录QQ，出现隐藏QQ？实战爆破一下</title>
<link>https://blog.lmb.blue/archives/656/</link>
<dc:date>2023-07-31T01:10:00+08:00</dc:date>
<description>源于网络关于隐藏QQ前几天在说说中发现引人注目的一条广告。说是什么手机号验证码登录就会出现隐藏QQ，秉承着好奇心害不死人的原则试了一下，我把两个手机号试了一下，发现了一个隐藏QQ号，就是：85xxxxxx39这个为什么会有呢？好问题！据说由于中国人口很大，然后手机号会被重复使用的。我这个才注册没多久的(冤种)腾讯QQ大王卡就是别人用过的手机号(居然二手货，害！)，这个隐藏QQ就是别人注册后没解绑或者没绑定手机号默认是注册手机号登录试试？试试就试试:)(doge6) 哦哟！不得了！腾讯QQ还留了one hand，还要有验证！很显然包括通过资料辅助验证这四种验证方式都行不通找回密码，再登录找回密码可以用手机号号找回，这样我们就可以找回隐藏QQ的密码了！但是事与愿违，很可惜这也需要进一步的验证！开始爆破选择爆破方式如果爆破密码很显然这是一个错误的选择，我选择爆破QQ号码。这样即可以在验证码登录后填写QQ号进行验证，也可以进行用QQ号找回密码然后再用手机验证码验证。怎样爆破？众所周知一般的QQ号都是8到10位数。因为85xxxxxx39中的x有6个，所以我断定这个QQ一定有10位，虽然很low的断定但是情有可原，毕竟也是弄着玩。问：10位QQ号中有6位数字不知道，有多少种可能。我毫不犹豫的打开了百度口算出来了，有100万种可能。如果我一个一个搜然后比对头像的话需要很久，就算我一秒一个也需要12天，感觉不多但是前提是得不吃不喝一秒一个，这个手工搜索不现实。我的垃圾思路：想出来用头像比对的方式来爆破QQ号→代码运行出100万个可能的QQ号→弄到正确QQ头像的原图→通过对每个QQ头像链接进行比对→最后代码来执行比对任务如何得到100万个QQ这里使用的是PHP代码执行的，自己使用要适当修改。//列出100万个QQ号
&lt;?php
$prefix = &#039;85&#039;;//前两位
$suffix = &#039;39&#039;;//后两位
$total = 1000000; // 总共的可能数量如果是9位QQ的话那就是100000
$result = &quot;&quot;;
// 生成可能的中间六位数字
for ($i = 0; $i &lt; $total; $i++) {
    $middle = str_pad($i, 6, &#039;0&#039;, STR_PAD_LEFT); // 使用0填充到6位数
    
    $qq = $prefix.$middle.$suffix;
    $result .= $qq.&quot;\n&quot;;
}
// 将列出结果一行一个QQ号保存到qq.txt
file_put_contents(&#039;qq.txt&#039;, $result);
echo &quot;可能的QQ号已保存到qq.txt文件中。&quot;;
?&gt;随便上传到一个PHP文件里(例如go.php)，第一种：用域名访问该文件(域名/go.php)第二种：SSH终端中运行go.php，两种方式都可以生成，然后服务器里的qq.txt文件里就包涵100万个QQ号了找正确QQ头像的原图我们先从QQ上截屏，这个截屏因为比较模糊，所以我们要找它的原图。这里没有什么高级的图片变高清或者什么修复的软件和代码。我用的是最朴实无华的百度识图，然后找相识，这个方法仅仅适用于头像是网图的。我这个还是不错找到了快速获取其它QQ头像这里有一个获取QQ头像的链接，高清大图http://q.qlogo.cn/headimg_dl?dst_uin=QQ账号&amp;spec=640&amp;img_type=jpg然后我们可以通过PHP代码写出一个可以根据qq.txt文件里的QQ号批量下载QQ头像的代码。//批量下载图片
&lt;?php
// 检查qq.txt文件是否存在
if (!file_exists(&#039;qq.txt&#039;)) {
    echo &quot;qq.txt文件不存在&quot;;
    exit;
}
// 创建img文件夹
if (!file_exists(&#039;img&#039;)) {
    mkdir(&#039;img&#039;);
}
// 读取qq.txt文件
$qqList = file(&#039;qq.txt&#039;, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
// 遍历每个QQ号
foreach ($qqList as $qq) {
    $qq = trim($qq); // 去除空格和换行符
    $url = &quot;http://q.qlogo.cn/headimg_dl?dst_uin={$qq}&amp;spec=640&amp;img_type=jpg&quot;;
    $imgPath = &quot;img/{$qq}.jpg&quot;; // 图片保存路径及文件名
    // 下载图片并保存
    file_put_contents($imgPath, file_get_contents($url));
}
echo &quot;图片下载完成！&quot;;我们有100万个QQ号，如果一次性全部下载完的话有些废服务器，所以这个代码不好用，优解看下一步。该如何进行对比？这个问题问得好！我也不知道，但是我有百度，查到了一个：“感知哈希算法之图片相似度对比”我简简单单的抄袭借鉴了一下，加上批量下载图片。我们可以知道，如果一次性下载完100万张QQ头像服务器是承受不住的，但是我们可以分批处理下载图片。把代码运行一小会儿后出现了错误：ERR_ADDRESS_UNREACHABLE可能是因为运行时间和内存的原因，我加上了相应限制：set_time_limit(0);
ini_set(&#039;memory_limit&#039;, &#039;2048M&#039;);感觉100万张图片全部下载下来很多而且占用空间，所以加了一个每执行完一批就就删除对应的图片。做了一些优化可以让服务器负担更小，比如对循环进行优化，减少不必要的重复计算和使用缓存来减少重复的计算或读取操作，提高性能。最终完整的代码就新鲜出炉咯//感知哈希算法对比图片相似度
&lt;?php
set_time_limit(0);
ini_set(&#039;memory_limit&#039;, &#039;2048M&#039;);//根据实际情况修改数字
class img_compare
{
    // 比较相似度
    public function compare($img1, $img2)
    {
        $hash1 = $this-&gt;gethash($img1);
        $hash2 = $this-&gt;gethash($img2);
        if (strlen($hash1) !== strlen($hash2)) return false;
        $count = 0;
        $len = strlen($hash1);
        for ($i = 0; $i &lt; $len; $i++) {
            if ($hash1[$i] == $hash2[$i]) {
                $count++;
            }
        }
        // 返回相似度
        return $count;
    }
    // 将图片文件返回为图像标识符
    public function getimg($url)
    {
        $name = pathinfo($url, PATHINFO_EXTENSION);
        $img = call_user_func(&#039;imagecreatefrom&#039; . ($name == &#039;jpeg&#039; ? &#039;jpeg&#039; : $name), $url);
        return $img;
    }
    // 获得图片指纹
    public function gethash($url)
    {
        $array = array();
        $total = 0;
        $new_img = imagecreatetruecolor(8, 8);
        list($ex_w, $ex_h) = getimagesize($url);
        $ex_img = $this-&gt;getimg($url);
        imagecopyresampled($new_img, $ex_img, 0, 0, 0, 0, 8, 8, $ex_w, $ex_h);
        imagedestroy($ex_img);
        for ($i = 0; $i &lt; 8; $i++) {
            for ($j = 0; $j &lt; 8; $j++) {
                $gray = (imagecolorat($new_img, $j, $i) &gt;&gt; 8) &amp; 0xFF;
                $array[$i][$j] = $gray;
                $total += $gray;
            }
        }
        imagedestroy($new_img);
        $average = intval($total / (8 * 8 * 2));
        $hash = &#039;&#039;;
        for ($i = 0; $i &lt; 8; $i++) {
            for ($j = 0; $j &lt; 8; $j++) {
                $hash .= ($array[$i][$j] &gt;= $average) ? &#039;1&#039; : &#039;0&#039;;
            }
        }
        return $hash;
    }
}
$file_path = &#039;qq.txt&#039;;
$qq_numbers = file($file_path, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
// 分批处理参数
$batch_size = 10;
$total_qq = count($qq_numbers);
$num_batches = ceil($total_qq / $batch_size);
// 定义匹配数组
$matched_qq = [];
$img = new img_compare();
// 启用输出缓冲区控制
ob_start();
// 循环遍历分批处理
for ($i = 0; $i &lt; $num_batches; $i++) {
    $start = $i * $batch_size;
    $end = min(($i + 1) * $batch_size, $total_qq);
    // 当前批次的QQ号码
    $batch_qq = array_slice($qq_numbers, $start, $end - $start);
    // 处理当前批次的QQ号码
    foreach ($batch_qq as $qq) {
        // 构建替换后的链接
        $replace_url = str_replace(&quot;QQ&quot;, $qq, &quot;https://q1.qlogo.cn/g?b=qq&amp;nk=QQ&amp;s=640&quot;);
        // 下载图片
        $local_image_path = &#039;img/&#039; . $qq . &#039;.jpeg&#039;;
        file_put_contents($local_image_path, file_get_contents($replace_url));
        // 计算图片相似度
        $similarity = $img-&gt;compare($local_image_path, &#039;img/true/QQ.jpeg&#039;);
        // 输出链接对比结果到内容输出框
        echo &quot;QQ号码：&quot; . $qq . &quot;，相似度：&quot; . $similarity . &quot;%\n&quot;;
        // 判断相似度是否大于等于90%
        if ($similarity &gt;= 90) {
            // 添加到匹配数组
            $matched_qq[] = $qq;
        }
    }
    // 写入当前批次匹配的号码到trueqq.txt文件
    if (!empty($matched_qq)) {
        file_put_contents(&#039;trueqq.txt&#039;, implode(PHP_EOL, $matched_qq) . PHP_EOL, FILE_APPEND);
        echo &quot;已匹配的号码已保存到trueqq.txt文件\n&quot;;
        $matched_qq = []; // 清空匹配数组
    }
    // 删除下载的图片
    foreach ($batch_qq as $qq) {
        $local_image_path = &#039;img/&#039; . $qq . &#039;.jpeg&#039;;
        if (file_exists($local_image_path)) {
            unlink($local_image_path);
        }
    }
}
// 输出已匹配的号码
if (!empty($matched_qq)) {
    echo &quot;已匹配的号码：\n&quot;;
    foreach ($matched_qq as $qq) {
        echo $qq . &quot;\n&quot;;
    }
}
// 清空输出缓冲区并关闭
ob_end_flush();
?&gt;你需要做的！在服务器上创建go.php，写入“列出100万个QQ号”的代码后运行，然后会自动创建qq.txt而且里面包涵所以可能的QQ号在服务器上创建img文件夹，所有下载的头像将会上传到img文件里里在服务器上创建img/true文件夹把正确的头像放在img/true里并命名QQ.jpeg在服务器上创建trueqq.txt，这是用于储存正确率三90%的QQ号新建一个run.php，将“感知哈希算法对比图片相似度”的代码写入，最后运行run.php并得出结果。最后结果结果我是没成功，报错502 Bad Gateway，通常是由服务器端出现问题导致的。因为没钱买高配置的服务器所以报错:^(流泪)2024年1月3日补充我运行代码的时候一直用的浏览器访问php文件来运行的，所以导致502 Bad Gateway，后来想我发现是可以直接在SSH终端里，使用命令运行php，而且可以长时间运行代码，但是我没有时间来继续实践下去了（主要是那个隐藏QQ号被我解绑了）</description>
</item>
<item rdf:about="https://blog.lmb.blue/archives/638/">
<title>如何快速替换typecho的图片链接</title>
<link>https://blog.lmb.blue/archives/638/</link>
<dc:date>2023-05-01T00:38:00+08:00</dc:date>
<description>话说我好久都没有更新文章了，博客感觉都要放烂了。继上次换域名后，是直接给mbhome.cn做了301重定向到blog.lmb520.cn。结果在域名到期后，文章里的图片链接就失效了。解决因为我习惯把图片直接储存到自己的服务器里，所以只需要将所有文章里图片链接中的www.mbhome.cn 替换成blog.lmb520.cn就行了。但是问题是这么多文章还得自己一个一个替换？怎么可能嘛，虽然我的文章不多。但是我也懒。所以直接登录我的phpMyAdmin。进入博客所在的数据库然后点击上面的三条杠，再点击SQL去里面执行SQL语句下面是需要的填写的语句update 表名 set 字段名=REPLACE (字段名,&#039;旧的值&#039;,&#039;新的值&#039;)就像我的：update typecho_contents set text=REPLACE (text,&#039;www.mbhome.cn&#039;,&#039;blog.lmb520.cn&#039;)点击执行就可以了！如果不放心可以试试模拟查询</description>
</item>
<item rdf:about="https://blog.lmb.blue/archives/629/">
<title>Google 账户的一次申诉</title>
<link>https://blog.lmb.blue/archives/629/</link>
<dc:date>2023-03-12T23:44:00+08:00</dc:date>
<description>话说前几天用科学上网技术注册了谷歌账户，注册后信息填完都还好好的，结果第二天登录就出现 ：“此帐号似乎是与多个其他帐号一起创建或使用的，这违反了Google的政策。此帐号可能是由计算机程序或机器人创建的。如果您认为自己的帐号不该被停用，请尽快提交申诉。您还可从某些Google服务中下载您的数据。这样，即使您的帐号未恢复，您也能保留自己的数据。”(难道老美已经知道我要入侵他们的服务器了？)我直接人麻了:^(微笑) 然后百度搜了搜大概就是科学上网后用的V皮N服务器IP大多数是共享的，所以会被人工智能智碍检测为是机器人批量创建的账户:[blobcatfacepalm]如何解封？不过Google还是给我们留了通道的，点击发起申诉点进去后到第二步的时候，要填申诉原因。这个一定要填不然一辈子都通过不了！下面给大家发了申诉模板，只需要将XXXX@gmail.com 换成自己的账户即可，可以根据自身情况修改相应部分Dear Sir/Madam.
Hello. My account is XXXX@gmail.com.
I am a American user in China. I must use a vpn proxy and a Chinese phone number to use Google products.
The account may be abnormally disabled due to &#039;This account appears to have been created by a robot or used with several other accounts&#039; .
And this account was truely created by myself [through vpn]!Not by robots or any other things.
So I don&#039;t think this account should be disabled
This account is VERY IMPORTANT to me. I hope you can help me solve it. Thank you very much.{/bs-accord}尊敬的先生/女士。你好。我的帐户是 XXXX@gmail.com。我是在中国的美国用户。我必须使用 vpn 代理和中国电话号码才能使用 Google 产品。由于“此帐户似乎由机器人创建或与其他几个帐户一起使用”，该帐户可能被异常禁用。这个帐户确实是我自己[通过vpn]创建的！不是机器人或任何其他东西。所以我认为不应该禁用此帐户这个帐户对我来说非常重要。希望你能帮我解决。谢谢。{/bs-accord}我的申诉结果申诉第三天就已经发来结果了，也是通过了申请。</description>
</item>
</rdf:RDF>