<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:wfw="http://wellformedweb.org/CommentAPI/">
<channel>
<title>小夏的猪窝 - 资源</title>
<link>https://blog.x-tools.top/category/resources/</link>
<atom:link href="https://blog.x-tools.top/feed/category/resources/" rel="self" type="application/rss+xml" />
<language>zh-CN</language>
<description>快来和我一起网上冲浪吧~</description>
<lastBuildDate>Sun, 12 Jan 2025 09:27:00 +0000</lastBuildDate>
<pubDate>Sun, 12 Jan 2025 09:27:00 +0000</pubDate>
<item>
<title>Auto_Si9000 阻抗计算神器，让 PCB 设计效率飙升！</title>
<link>https://blog.x-tools.top/archives/103/</link>
<guid>https://blog.x-tools.top/archives/103/</guid>
<pubDate>Sun, 12 Jan 2025 09:27:00 +0000</pubDate>
<dc:creator>小夏</dc:creator>
<description><![CDATA[前言该项目的上篇文章是：关于SI9000计算阻抗接口的研究；上篇讲解了Si9000的接口调用，可以被任何高级编程语言使用，如上篇文章中的Python；本篇发布前，本人也使用Python写了6个常...]]></description>
<content:encoded xml:lang="zh-CN"><![CDATA[
<h2>前言</h2><p>该项目的上篇文章是：<a href="https://blog.x-tools.top/archives/98/">关于SI9000计算阻抗接口的研究</a>；<br>上篇讲解了Si9000的接口调用，可以被任何高级编程语言使用，如上篇文章中的Python；<br>本篇发布前，本人也使用Python写了6个常见的模型，包括正算、反算，但由于Python的UI方面没有过多的知识储备，<br>导致Python始终是使用命令行终端来呈现的... 总之难用就对了，而且终端的话无法做到批量的数据正算、反算；<br>这里也放出Python的GitHub项目地址：<a href="https://github.com/XiaM-Admin/Auto_Si9000_Py">Auto_Si9000_Py</a>，仅供学习参考；<br>以上这就是我转换到.NET C# WPF编写的原因；</p><h2>Auto_Si9000 功能</h2><p>1、支持常见的8个阻抗模型：<br>外层单线不对地,外层单线对地,<br>内层单线不对地,内层单线对地,<br>外层双线不对地,外层双线对地,<br>内层双线不对地,内层双线对地；</p><p>2、支持批量阻抗的正算、反算；</p><p>3、支持生成原生的Si9000软件界面的预览图，并支持复制到剪贴板；<br>预览图中还圈出了重要的数据，如线宽、线距、对地数据，用于EQ的建议；</p><h2>软件截图</h2><p>程序主界面：<br><img src="https://image.180402.xyz/2025/01/12/678389db06bbd.png" alt="1736673754308.png" title="1736673754308.png"></p><p>预览界面：<br><img src="https://image.180402.xyz/2025/01/12/678389f5d6580.png" alt="1736673781214.png" title="1736673781214.png"></p><p>支持复制到剪贴板：<br><img src="https://image.180402.xyz/2025/01/12/67838a24dc27b.png" alt="1736673828246.png" title="1736673828246.png"></p><h2>项目地址</h2><p><a href="https://github.com/XiaM-Admin/Auto_Si9000_WPF"><a href="https://github.com/XiaM-Admin/Auto_Si9000_WPF">https://github.com/XiaM-Admin/Auto_Si9000_WPF</a></a><br>如果帮助到你，可以点一个小小的Star哦~</p>
]]></content:encoded>
<slash:comments>0</slash:comments>
<comments>https://blog.x-tools.top/archives/103/#comments</comments>
<wfw:commentRss>https://blog.x-tools.top/feed/category/resources/</wfw:commentRss>
</item>
<item>
<title>关于SI9000计算阻抗接口的研究</title>
<link>https://blog.x-tools.top/archives/98/</link>
<guid>https://blog.x-tools.top/archives/98/</guid>
<pubDate>Tue, 26 Nov 2024 01:50:24 +0000</pubDate>
<dc:creator>小夏</dc:creator>
<description><![CDATA[开篇在PCB设计中，阻抗控制主要是指控制信号线的特性阻抗，使其与传输线或连接设备的阻抗匹配，以确保信号在传输过程中不产生过多的反射和损耗，常用于传输线的设计中。上述的重点就是阻抗匹配，客户端若在...]]></description>
<content:encoded xml:lang="zh-CN"><![CDATA[
<h2>开篇</h2><p><font style="color:rgb(36, 41, 47);">在PCB设计中，阻抗控制主要是指控制信号线的特性阻抗，使其与传输线或连接设备的阻抗匹配，以确保信号在传输过程中不产生过多的反射和损耗，常用于传输线的设计中。上述的重点就是</font><strong><font style="color:rgb(36, 41, 47);">阻抗匹配</font></strong><font style="color:rgb(36, 41, 47);">，客户端若在PCB中存在阻抗管控的要求，需要某一段线路的阻抗在XΩ±Y%（例：50Ω±10%）的范围内，PCB厂商在生产的过程中需要尽量保证阻抗线完整、平滑。</font></p><p><font style="color:rgb(36, 41, 47);">除了在生产过程中保证应该有的质量保证，还需要在工程设计阶段对资料中阻抗线的理论阻抗值进行模拟，如果模拟的阻抗值超出客户要求的阻抗管控范围，或偏差较大时，PCB厂商通常会对阻抗线进行建议调整，以确保阻抗值在客户要求的范围内。此外PCB生产完毕后，还需要指定的阻抗条测试模块，对PCB的阻抗进行测试，此时测量出来的就是板内实际的阻抗值了。</font></p><p><font style="color:rgb(36, 41, 47);">那么，如何对阻抗进行模拟计算呢？</font></p><h2><font style="color:rgb(36, 41, 47);">Polar SI9000</font></h2><p>我们需要使用到各种阻抗模拟的软件，本文使用的软件为：<strong>Polar SI9000</strong>，SI9000是Polar公司开发的<font style="color:rgb(36, 41, 47);">一款用于PCB设计的阻抗模拟软件，可以帮助设计师精确计算和优化传输线的特性阻抗。该软件中有各种阻抗线的模拟层叠结构，常用的有单线、单线共面、双线、双线共面，以及提供了内层、外层、盖油、不盖油的几类模拟阻抗模拟计算结构；</font></p><p><font style="color:rgb(36, 41, 47);">若需要模拟阻抗，只需要选择一个符合客户资料设计的阻抗线模型，填入需要的参数后，点击Calculate(计算)即可实现对理论阻抗的模拟。接下来我们使用Coated Microstrip1B(外层单线盖油)模型来实现对阻抗的模拟计算：</font></p><p>首先，填入软件需要的参数：介质层厚度(H1)、介质层介电常数(Er1)、线路下线宽(W1)、线路上线宽(W2)、线路厚度(T1)、基材上油墨厚度(C1)、线路上基材厚度(C2)、油墨介电常数(CEr)；</p><p>这些参数根据PCB厂商总结的常规参数填入即可，其中W1与W2，阻抗线的上下线宽通常是相差1Mil（受蚀刻药水的影响），1Mil是PCB厂商的常规蚀刻要求侵蚀的量，W1-W2=1Mil；关于板材以及油墨的介电常数需要让板材、油墨供应商来提供；填完参数点计算即可出现相应的阻抗Zo值了。</p><p>以上是一个阻抗仿真的步骤，实际上操作会比文本描述更加繁琐，更何况一个PCB中常规情况下不仅仅只有1个阻抗需要管控。并且SI9000的保存做的不是很好，如果PCB的层压叠构改变，所有阻抗都需要重新计算！非常难受... 这就让我产生了对SI9000阻抗程序的研究，找到软件的接口，制作一个基于SI9000计算接口的阻抗计算项目；</p><p><img src="https://image.180402.xyz/S3/1732583638018.png" alt="" title=""></p><h2>CalcEngineBEMDll.dll</h2><p>旧版本的SI9000安装目录中，没有<strong>CalcEngineBEMDll.dll</strong>，应该是集成在软件中了，本文使用的SI9000版本是V7.1.0，其中CalcEngineBEMDll.dll版本为V3.30，PolarGraphDll.dll的版本为V1.30。</p><p>该阻抗计算软件的接口均在<strong>CalcEngineBEMDll.dll</strong>中，SI9000.exe本体就是调用dll中的开放的接口来实现阻抗值的计算。为什么？因为SI8000是SI9000的老版本，8000的安装目录中提供了两个Excel文件，分别为Si8000.xls、Si8000Expert.xls，这些Excel中的VBA代码均被加密，使用网上的破解方法进入查看工程代码后，发现表中实现阻抗值计算的方法均是来自CalcEngineBEMDll.dll，该dll使用depends.exe加载后显示存在139个方法，其中阻抗计算的方法就有95个，在depends.exe加载的dll并不能展示方法所需的参数个数、参数类型等信息，但是在SI8000的Excel中VBA工程中所有方法的参数、参数类型都在其中！</p><p>以上，我们可以知道，阻抗计算方法在DLL中，方法可以被调用，方法的传参可以参考VBA工程；但前提是，用户电脑上必须安装好SI9000软件才可以；</p><p>接下来，本文中我将使用Python对DLL中计算方法进行调用，其它的语言请读者自行尝试。</p><p><img src="https://image.180402.xyz/S3/1732583638076.png" alt="" title=""></p><h2>Python调用</h2><p>Python是一个强大的高级编程语言，简单易用，各种领域都会有它的身影，无论是大小项目，都可以使用现有的pip包轻松实现。</p><p>示例项目使用的包为Python自带的<strong>ctypes</strong>，这个项目结构如下：</p><p>|--Auto_SI9000</p><p>|----main.py &gt; 调用calcFun中的类实现阻抗值计算</p><p>|----models.py &gt; 定义一些需要使用的结构体</p><p>|----si9000.py &gt; 加载DLL，定义DLL中方法的传参及返回值</p><p>|----calcFun.py &gt; Calc类(单计算)，Calc_Plus类(多计算，继承Calc)</p><p>|---lib文件夹 &gt; 存放需加载的DLL相关文件</p><p>接下来展示一下调用DLL的简单代码流程：</p><p>1、首先调用DLL中的ClaimFlexLicence方法，认证一下产品Key（仅需要认证一次）；</p><p>2、使用IsCalculationModelAllowed方法，指定需要使用的模型并允许DLL可以准备开始计算；</p><p>3、调用计算方法CoatedMicrostrip1B方法，并传入需要前面讲到的单线模型需要的一些参数（H1、Er1等），调用完成后会立刻返回，它的返回值是int(long)类型，1或0；该方法会将传入的参数进行检查，检查后会立刻返回检查的结果，返回1，则代表计算已经开始，返回0，代表计算参数存在错误，需要重新检查参数正确性！</p><p>4、调用QueryCalculationFinished等待方法，等待计算结束；</p><p>5、使用QueryCalculationResult方法获取阻抗计算结果，该方法如果直接传入结构体，会出现写入权限限制的问题，需要将变量的地址作为参数解决该问题；</p><p>最后，结构体中的<strong>dImpedance</strong>就是结果阻抗值了！</p><p>以上的调用流程均是来自VBA工程中的，其中部分方法可以跳过，或更改流程，读者可自行尝试。</p><p><img src="https://image.180402.xyz/S3/1732583638156.png" alt="" title=""></p><h2>最后</h2><p>本文到此为止就结束了，更多的DLL方法请自行在VBA工程中解读；</p><p>该项目目前还未完成，现只提供了一个单线模型的计算方法示例；</p><p>我会在文本末尾添加上本次示例项目的下载链接（Python代码，SI9000安装包），请自行下载，感谢各位！</p><p>项目下载链接：<a href="https://image.180402.xyz/S3/Auto_SI9000%20V2.exe">https://image.180402.xyz/S3/Auto_SI9000%20V2.exe</a></p>
]]></content:encoded>
<slash:comments>0</slash:comments>
<comments>https://blog.x-tools.top/archives/98/#comments</comments>
<wfw:commentRss>https://blog.x-tools.top/feed/category/resources/</wfw:commentRss>
</item>
<item>
<title>XClipboard！第一个版本发布！</title>
<link>https://blog.x-tools.top/archives/85/</link>
<guid>https://blog.x-tools.top/archives/85/</guid>
<pubDate>Sun, 07 May 2023 12:47:00 +0000</pubDate>
<dc:creator>小夏</dc:creator>
<description><![CDATA[这是一个剪贴板监控程序，您剪贴板的一切数据都可以被 XClipboard 📋记录，存储在本地的数据库中，所以你不需要担心自己的数据泄露！您的所有数据不会离开您的电脑。为什么要做这个项目？🌝除了剪...]]></description>
<content:encoded xml:lang="zh-CN"><![CDATA[
<p>这是一个剪贴板监控程序，您剪贴板的一切数据都可以被 <strong>XClipboard</strong> 📋记录，存储在本地的数据库中，所以你不需要担心自己的数据泄露！您的所有数据不会离开您的电脑。</p><h2>为什么要做这个项目？🌝</h2><p>除了剪贴板记录的功能，我还加入了图床功能，为了自己更方便的博客记录，您只管截图，剩下的交给XClipboard。XClipboard会自动将您剪贴板的图片做上传处理，保存至您想存放的云存储桶中（又拍云...），若想使用这张图片，XClipboard为您转换了多种链接格式（MarkDown、BBCode、HTML等）。</p><h2>项目关于😗</h2><p>采用<strong>WPF MVVM</strong>框架构建，使用Prism、MaterialDesignInXamlToolkit等开源库实现各种功能。</p><p>这是一个开源项目，程序采用WPF Prism MVVM框架编写，以及NeGet库log4net、MaterialDesignThemes、SharpClipboard、SKIT.FlurlHttpClient.Upyun.Uss构建。目前为第一个测试版本，若存在任何问题请评论反馈给我。</p><h2>程序图片🎯</h2><p><img src="https://p.x-tools.top/Images/2023%2005-07%2020-08-52.png" alt="📋" title="📋"><br><img src="https://p.x-tools.top/Images/2023%2005-07%2020-35-09.png" alt="📋" title="📋"><br><img src="https://p.x-tools.top/Images/2023%2005-07%2020-35-41.png" alt="📋" title="📋"></p><h2>一点意外👾</h2><p>自己做项目一定要用<strong>Git版本管理平台</strong>！！自己搭建的也行、Github、GitLab都可以！<br>在项目过程中，调试托盘部分代码时，突然VS2022就报非常非常多的错误... 也找不到问题所在，还好使用的时MVVM框架编写，移植也非常方便，花了一个晚上弄了个新的工程继续编写。真的太吓人了...</p><p>MVVM框架编写真的非常快，在我每天下班编写的1-2小时，我能在一个月内完成这第一个发行版。Prism非常优秀，我之前一直在使用WindowsFormsApp编写，可是写的越多，代码就越难写... WPF MVVM的开发模式确实让我眼前一亮。</p><h2>链接🌐</h2><p>开源项目地址：<a href="https://github.com/XiaM-Admin/XClipboard">https://github.com/XiaM-Admin/XClipboard</a><br>暂且版本号就叫做 Beta1.0.0 吧。</p>
]]></content:encoded>
<slash:comments>0</slash:comments>
<comments>https://blog.x-tools.top/archives/85/#comments</comments>
<wfw:commentRss>https://blog.x-tools.top/feed/category/resources/</wfw:commentRss>
</item>
<item>
<title>电子 - ESP8266OLED信息显示项目</title>
<link>https://blog.x-tools.top/archives/36/</link>
<guid>https://blog.x-tools.top/archives/36/</guid>
<pubDate>Fri, 17 Jun 2022 04:35:00 +0000</pubDate>
<dc:creator>小夏</dc:creator>
<description><![CDATA[&lt;!--[toc]--&gt;项目说明一个OLED显示项目，我准备用来显示分辨率cgpu占用率的，时间问题，只做了一个界面。本项目可以通过上位机程序切换程序的运行模式，将代码中的上位机ip...]]></description>
<content:encoded xml:lang="zh-CN"><![CDATA[
<p>&lt;!--[toc]--&gt;</p><h1>项目说明</h1><p>一个OLED显示项目，我准备用来显示分辨率cgpu占用率的，时间问题，只做了一个界面。<br>本项目可以通过上位机程序切换程序的运行模式，将代码中的上位机ip和天气城市id改一下即可使用。<br>目前只有2个模式<code>0,1</code>,0模式 显示时间天气日期，1模式 显示Hello World，主要是用来调试模式切换的。<br>程序代码 后续可能会有更新，最近在忙工作和毕设。</p><h1>硬件配置</h1><ol><li>ESP8266 - 12E</li><li>OLED屏幕 <code>i2c</code>协议 内部驱动芯片：<code>SH1106</code> <code>1.3寸</code></li><li>[可选] 复位上位机按钮</li></ol><h1>引脚配置</h1><p>OLED和ESP8266引脚配置图<br><img src="http://cdn.x-tools.top/MarkDownImg/202261743506026.png" alt="OLED和ESP8266引脚配置图" title="OLED和ESP8266引脚配置图"><br>[可选]按钮引脚配置<br>按钮接<code>D8</code>引脚，另一端接MCU的3.3V输出端。<br>当按钮按下时，D8的电平会改变，我们通过读取D8引脚的电平，来做某些事情。</p><h1>代码说明</h1><ol><li>网络WIFI环境初始化 使用的是<code>WiFiManager</code>库 管理包下载即可</li><li>和风天气api的使用 使用的是<code>ESP8266WebServer</code>库 <a href="https://github.com/Ldufan/ESP8266_Heweather">GitHub地址</a></li><li>项目中OLED显示 使用的是中景园电子科技的示例代码</li><li>时间以及天气的刷新 我使用的是<code>Ticker</code>库 定时库 自带</li><li>模式1的表盘背景、天气图标 是使用PS软件画再通过字库工具转换的</li><li>按键的防抖 我使用的是变量计数，达到某一值时，才执行函数</li></ol><h1>项目样图\图片</h1><h2>模式1</h2><p><img src="http://cdn.x-tools.top/MarkDownImg/202261744469432.png" alt="模式1" title="模式1"></p><h2>模式2</h2><p><img src="http://cdn.x-tools.top/MarkDownImg/202261744626530.png" alt="模式2" title="模式2"></p><h2>网络调试助手</h2><p>通过发送 mode + 模式id 即可做到切换oled屏幕显示的模式<br><img src="http://cdn.x-tools.top/MarkDownImg/202261744694408.png" alt="调试助手" title="调试助手"></p><h1>附件 及 代码</h1><ol><li><a href="https://b.x-tools.top/typecho/uploads/2022/06/2173982971.rar">ShowOLED代码附网络调试助手.rar</a></li></ol>
]]></content:encoded>
<slash:comments>0</slash:comments>
<comments>https://blog.x-tools.top/archives/36/#comments</comments>
<wfw:commentRss>https://blog.x-tools.top/feed/category/resources/</wfw:commentRss>
</item>
<item>
<title>推荐一个免费ssl证书网站</title>
<link>https://blog.x-tools.top/archives/33/</link>
<guid>https://blog.x-tools.top/archives/33/</guid>
<pubDate>Sat, 11 Jun 2022 02:09:00 +0000</pubDate>
<dc:creator>小夏</dc:creator>
<description><![CDATA[&lt;!--[toc]--&gt;功能证书支持泛域名、多组域名。支持多种CA渠道, 自由选择。证书自动验证, 到期自动重申，但是要vip。大部分域名证书时长为90天，申请的是buypass类型...]]></description>
<content:encoded xml:lang="zh-CN"><![CDATA[
<p>&lt;!--[toc]--&gt;</p><h1>功能</h1><ol><li>证书支持泛域名、多组域名。</li><li>支持多种CA渠道, 自由选择。</li><li>证书自动验证, 到期自动重申，但是要vip。</li></ol><p>大部分域名证书时长为90天，申请的是buypass类型的证书，有效期为：180天。</p><h1>积分</h1><p>积分没啥用，200积分换取vip</p><ol><li>单张证书支持同时包含16组域名</li><li>可同时拥有100张有效证书(普通账户6张)</li><li>提交验证前无需等待</li><li>可使用独立通道，加快申请速度</li><li>可自动验证和自动重申(只需一次,后续申请无需设置)</li><li>可以为违规域名申请证书</li></ol><p>还有vip是永久的，直到网站停止服务，不是包年包月的。</p><h1>链接</h1><p><a href="https://letsencrypt.osfipin.com/">来此加密</a><br>如果可以填写邀请码：<code>ZRL35J5D</code><br>不想填也没关系哦，也就5点积分。</p>
]]></content:encoded>
<slash:comments>0</slash:comments>
<comments>https://blog.x-tools.top/archives/33/#comments</comments>
<wfw:commentRss>https://blog.x-tools.top/feed/category/resources/</wfw:commentRss>
</item>
<item>
<title>资源 - 外网ip获取api</title>
<link>https://blog.x-tools.top/archives/15/</link>
<guid>https://blog.x-tools.top/archives/15/</guid>
<pubDate>Tue, 24 May 2022 12:57:00 +0000</pubDate>
<dc:creator>小夏</dc:creator>
<description><![CDATA[&lt;!--[toc]--&gt;本文所有外网ip是1.1.1.1作为演示例子我自己的apixApi https://api.x-tools.top/ | 去看看返回的是Json格式字符串{&...]]></description>
<content:encoded xml:lang="zh-CN"><![CDATA[
<p>&lt;!--[toc]--&gt;</p><blockquote>本文所有外网ip是<code>1.1.1.1</code>作为演示例子</blockquote><h1>我自己的api</h1><ul><li><p>xApi <code>https://api.x-tools.top/</code> | <a href="https://api.x-tools.top/" target="_blank">去看看</a></p><ul><li>返回的是Json格式字符串</li></ul><pre><code class="lang-json">{
&quot;WelCome&quot;: &quot;Good Luck&quot;,
&quot;You_ip&quot;: &quot;1.1.1.1&quot;,
&quot;By_Q&quot;: 142473282
}</code></pre><p><br></p></li></ul><h1>搜狐 api</h1><ul><li><p>搜狐外网ip的api <code>https://pv.sohu.com/cityjson?ie=utf-8</code> | <a href="https://pv.sohu.com/cityjson?ie=utf-8" target="_blank">去看看</a></p><ul><li>返回的是字符串需要自行正则获取</li><li><code>var returnCitySN = {&quot;cip&quot;: &quot;1.1.1.1&quot;, &quot;cid&quot;: &quot;xxxxxx&quot;, &quot;cname&quot;: &quot;江苏省常州市&quot;};</code></li></ul><p><br></p></li></ul><h1>未知 api</h1><ul><li><p>api链接： <code>https://api.ipify.org/?format=json</code> | <a href="https://api.ipify.org/?format=json" target="_blank">去看看</a></p><ul><li>返回的是JSON格式的数据</li></ul><pre><code class="lang-json">{
&quot;ip&quot;: &quot;1.1.1.1&quot;
}</code></pre><p><br></p></li></ul><h1>Alist作者的api</h1><ul><li><p><a href="https://alist.nn.ci/">Alist</a>作者的获取ip信息api <code>https://api.nn.ci/ip</code> | <a href="https://api.nn.ci/ip" target="_blank">去看看</a></p><ul><li><p>返回JSON格式的数据</p><pre><code class="lang-json">{
&quot;ip&quot;: &quot;1.1.1.1&quot;,
&quot;region&quot;: &quot;亚洲&quot;,
&quot;country&quot;: &quot;中国&quot;,
&quot;province&quot;: &quot;江苏&quot;,
&quot;city&quot;: &quot;南京&quot;,
&quot;isp&quot;: &quot;电信/基站WiFi&quot;
}</code></pre><p><br></p></li></ul></li></ul><h1>cip.cc的api</h1><ul><li><p><a href="https://www.cip.cc/">cip查询</a>外网ip获取链接 <code>http://ip.cip.cc/</code> | <a href="http://ip.cip.cc/" target="_blank">去看看</a></p><ul><li>返回ip文本</li><li><code>1.1.1.1</code><br><br></li></ul></li></ul><h1>测速网的api</h1><ul><li><p><a href="https://www.speedtest.cn/">测速网</a>的获取ip及地址信息的api <code>https://api-v3.speedtest.cn/ip</code> | <a href="https://api-v3.speedtest.cn/ip" target="_blank">去看看</a></p><ul><li><p>返回JSON格式的数据</p><pre><code class="lang-json">{
&quot;code&quot;: 0,
&quot;data&quot;: {
    &quot;country&quot;: &quot;中国&quot;,
    &quot;province&quot;: &quot;江苏&quot;,
    &quot;city&quot;: &quot;盐城&quot;,
    &quot;district&quot;: &quot;亭湖区&quot;,
    &quot;isp&quot;: &quot;中国电信&quot;,
    &quot;lon&quot;: &quot;xx&quot;,
    &quot;lat&quot;: &quot;xx&quot;,
    &quot;countryCode&quot;: &quot;CN&quot;,
    &quot;ip&quot;: &quot;1.1.1.1&quot;,
    &quot;operator&quot;: &quot;中国电信&quot;
},
&quot;msg&quot;: &quot;ok&quot;
}</code></pre><p><br></p></li></ul></li></ul><h1>又拍云</h1><ul><li><p><a href="https://www.upyun.com/">又拍云</a>的外网ip以及地理位置api <code>https://pubstatic.b0.upaiyun.com/?_upnode</code> | <a href="https://pubstatic.b0.upaiyun.com/?_upnode" target="_blank">去看看</a></p><ul><li>返回JSON格式的数据</li><li><p>不能保证此链接长久有效，使用时请注意！失效后请联系我删除。</p><pre><code class="lang-json">{
&quot;addr&quot;: &quot;36.99.120.207&quot;,
&quot;server&quot;: &quot;marco/2.16.1&quot;,
&quot;server_time&quot;: &quot;2022-06-25 18:01:02&quot;,
&quot;remote_addr&quot;: &quot;1.1.1.1&quot;,
&quot;addr_location&quot;: {
&quot;country&quot;: &quot;中国&quot;,
&quot;isp&quot;: &quot;电信&quot;,
&quot;province&quot;: &quot;河南&quot;,
&quot;continent&quot;: &quot;亚洲&quot;,
&quot;city&quot;: &quot;濮阳&quot;
},
&quot;hostname&quot;: &quot;ctn-ha-lya1-099&quot;,
&quot;remote_addr_location&quot;: {
&quot;country&quot;: &quot;中国&quot;,
&quot;isp&quot;: &quot;电信&quot;,
&quot;province&quot;: &quot;江苏&quot;,
&quot;continent&quot;: &quot;亚洲&quot;,
&quot;city&quot;: &quot;&quot;
}
}</code></pre></li></ul></li></ul>
]]></content:encoded>
<slash:comments>1</slash:comments>
<comments>https://blog.x-tools.top/archives/15/#comments</comments>
<wfw:commentRss>https://blog.x-tools.top/feed/category/resources/</wfw:commentRss>
</item>
</channel>
</rss>