mirror of
				https://github.com/oneclickvirt/ecs.git
				synced 2025-10-31 10:56:37 +08:00 
			
		
		
		
	Compare commits
	
		
			15 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 110e6d34f9 | ||
|   | 4d18497dd3 | ||
|   | c676cd83cb | ||
|   | 58e1de4487 | ||
|   | 89eecd2acc | ||
|   | 194dee49fd | ||
|   | 1e88513b8e | ||
|   | f84023d18b | ||
| ![github-actions[bot]](/assets/img/avatar_default.png)  | 2cfd5af3c0 | ||
|   | ed66e2804a | ||
|   | 174bf303af | ||
|   | b75f42ffe5 | ||
| ![github-actions[bot]](/assets/img/avatar_default.png)  | 56b71ac53f | ||
|   | 1045d3fab8 | ||
| ![github-actions[bot]](/assets/img/avatar_default.png)  | 7bd2b59d58 | 
							
								
								
									
										17
									
								
								.github/workflows/build_docker.yaml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										17
									
								
								.github/workflows/build_docker.yaml
									
									
									
									
										vendored
									
									
								
							| @@ -1,33 +1,30 @@ | |||||||
| name: Build and Push Docker Image | name: Build and Push Docker Image | ||||||
|  |  | ||||||
| on: | on: | ||||||
|   workflow_run: |   workflow_run: | ||||||
|     workflows: ["Build and Release"] |     workflows: ["Build and Release"] | ||||||
|     types: |     types: | ||||||
|       - completed |       - completed | ||||||
|   workflow_dispatch: |   workflow_dispatch: | ||||||
|  |  | ||||||
| jobs: | jobs: | ||||||
|   build: |   build: | ||||||
|     runs-on: ubuntu-latest |     runs-on: ubuntu-latest | ||||||
|  |     permissions: | ||||||
|  |       contents: read | ||||||
|  |       packages: write | ||||||
|     steps: |     steps: | ||||||
|       - name: Checkout repository |       - name: Checkout repository | ||||||
|         uses: actions/checkout@v2 |         uses: actions/checkout@v2 | ||||||
|  |  | ||||||
|       - name: Set up QEMU |       - name: Set up QEMU | ||||||
|         uses: docker/setup-qemu-action@v2 |         uses: docker/setup-qemu-action@v2 | ||||||
|         with: |         with: | ||||||
|           platforms: all |           platforms: all | ||||||
|  |  | ||||||
|       - name: Set up Docker Buildx |       - name: Set up Docker Buildx | ||||||
|         uses: docker/setup-buildx-action@v2 |         uses: docker/setup-buildx-action@v2 | ||||||
|  |  | ||||||
|       - name: Log in to Docker Hub |       - name: Log in to Docker Hub | ||||||
|         uses: docker/login-action@v2 |         uses: docker/login-action@v2 | ||||||
|         with: |         with: | ||||||
|           username: ${{ secrets.DOCKER_USERNAME }} |           username: ${{ secrets.DOCKER_USERNAME }} | ||||||
|           password: ${{ secrets.DOCKER_PASSWORD }} |           password: ${{ secrets.DOCKER_PASSWORD }} | ||||||
|  |  | ||||||
|       # - name: Login to CNB Registry |       # - name: Login to CNB Registry | ||||||
|       #   uses: docker/login-action@v2 |       #   uses: docker/login-action@v2 | ||||||
|       #   with: |       #   with: | ||||||
| @@ -42,6 +39,13 @@ jobs: | |||||||
|           username: ${{ secrets.ALIYUN_USERNAME }} |           username: ${{ secrets.ALIYUN_USERNAME }} | ||||||
|           password: ${{ secrets.ALIYUN_PASSWORD }} |           password: ${{ secrets.ALIYUN_PASSWORD }} | ||||||
|        |        | ||||||
|  |       - name: Log in to GitHub Container Registry | ||||||
|  |         uses: docker/login-action@v2 | ||||||
|  |         with: | ||||||
|  |           registry: ghcr.io | ||||||
|  |           username: ${{ github.actor }} | ||||||
|  |           password: ${{ secrets.GITHUB_TOKEN }} | ||||||
|  |        | ||||||
|       - name: Build and push Docker images |       - name: Build and push Docker images | ||||||
|         uses: docker/build-push-action@v4 |         uses: docker/build-push-action@v4 | ||||||
|         with: |         with: | ||||||
| @@ -54,3 +58,4 @@ jobs: | |||||||
|           tags: | |           tags: | | ||||||
|             ${{ secrets.DOCKER_USERNAME }}/goecs:latest |             ${{ secrets.DOCKER_USERNAME }}/goecs:latest | ||||||
|             crpi-8tmognxgyb86bm61.cn-guangzhou.personal.cr.aliyuncs.com/oneclickvirt/ecs:latest |             crpi-8tmognxgyb86bm61.cn-guangzhou.personal.cr.aliyuncs.com/oneclickvirt/ecs:latest | ||||||
|  |             ghcr.io/${{ github.repository_owner }}/goecs:latest | ||||||
|   | |||||||
							
								
								
									
										11
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								README.md
									
									
									
									
									
								
							| @@ -47,15 +47,14 @@ Shell 版本:[https://github.com/spiritLHLS/ecs](https://github.com/spiritLHLS | |||||||
| |----------------|---------------------------| | |----------------|---------------------------| | ||||||
| | Android(arm64) | 存在权限问题未修复,非安卓系统的ARM架构无问题      | | | Android(arm64) | 存在权限问题未修复,非安卓系统的ARM架构无问题      | | ||||||
| | OpenBSD/NetBSD | 部分Goalng的官方库未支持本系统(尤其是net相关项目)  | | | OpenBSD/NetBSD | 部分Goalng的官方库未支持本系统(尤其是net相关项目)  | | ||||||
| | Windows虚拟机   | 无Admin权限的mbw测试性能不准确(内存测试) | |  | ||||||
| | Windows物理机(非Admin下)   | 无Admin权限的mbw测试性能不准确(内存测试) | |  | ||||||
| --- | --- | ||||||
|  |  | ||||||
| ## **功能** | ## **功能** | ||||||
|  |  | ||||||
| - 系统基础信息查询,IP基础信息并发查询:[basics](https://github.com/oneclickvirt/basics)、[gostun](https://github.com/oneclickvirt/gostun) | - 系统基础信息查询,IP基础信息并发查询:[basics](https://github.com/oneclickvirt/basics)、[gostun](https://github.com/oneclickvirt/gostun) | ||||||
| - CPU 测试:[cputest](https://github.com/oneclickvirt/cputest),支持 sysbench(lua/golang版本)、geekbench、winsat | - CPU 测试:[cputest](https://github.com/oneclickvirt/cputest),支持 sysbench(lua/golang版本)、geekbench、winsat | ||||||
| - 内存测试:[memorytest](https://github.com/oneclickvirt/memorytest),支持 sysbench、dd | - 内存测试:[memorytest](https://github.com/oneclickvirt/memorytest),支持 sysbench、dd、winsat、mbw、stream | ||||||
| - 硬盘测试:[disktest](https://github.com/oneclickvirt/disktest),支持 dd、fio、winsat | - 硬盘测试:[disktest](https://github.com/oneclickvirt/disktest),支持 dd、fio、winsat | ||||||
| - 流媒体解锁信息并发查询:[netflix-verify](https://github.com/sjlleo/netflix-verify) 等逻辑,开发至 [CommonMediaTests](https://github.com/oneclickvirt/CommonMediaTests) | - 流媒体解锁信息并发查询:[netflix-verify](https://github.com/sjlleo/netflix-verify) 等逻辑,开发至 [CommonMediaTests](https://github.com/oneclickvirt/CommonMediaTests) | ||||||
| - 常见流媒体测试并发查询:[UnlockTests](https://github.com/oneclickvirt/UnlockTests),逻辑借鉴 [RegionRestrictionCheck](https://github.com/lmc999/RegionRestrictionCheck) 等 | - 常见流媒体测试并发查询:[UnlockTests](https://github.com/oneclickvirt/UnlockTests),逻辑借鉴 [RegionRestrictionCheck](https://github.com/lmc999/RegionRestrictionCheck) 等 | ||||||
| @@ -65,7 +64,7 @@ Shell 版本:[https://github.com/spiritLHLS/ecs](https://github.com/spiritLHLS | |||||||
| - 三网路由测试:基于 [NTrace-core](https://github.com/nxtrace/NTrace-core),二次开发至 [nt3](https://github.com/oneclickvirt/nt3) | - 三网路由测试:基于 [NTrace-core](https://github.com/nxtrace/NTrace-core),二次开发至 [nt3](https://github.com/oneclickvirt/nt3) | ||||||
| - 网速测试:基于 [speedtest.net](https://github.com/spiritLHLS/speedtest.net-CN-ID) 和 [speedtest.cn](https://github.com/spiritLHLS/speedtest.cn-CN-ID) 数据,开发至 [oneclickvirt/speedtest](https://github.com/oneclickvirt/speedtest) | - 网速测试:基于 [speedtest.net](https://github.com/spiritLHLS/speedtest.net-CN-ID) 和 [speedtest.cn](https://github.com/spiritLHLS/speedtest.cn-CN-ID) 数据,开发至 [oneclickvirt/speedtest](https://github.com/oneclickvirt/speedtest) | ||||||
| - 三网 Ping 值测试:借鉴 [ecsspeed](https://github.com/spiritLHLS/ecsspeed),二次开发至 [pingtest](https://github.com/oneclickvirt/pingtest) | - 三网 Ping 值测试:借鉴 [ecsspeed](https://github.com/spiritLHLS/ecsspeed),二次开发至 [pingtest](https://github.com/oneclickvirt/pingtest) | ||||||
| - 支持root或admin环境下测试,支持非root或非admin环境下测试,支持离线环境下进行测试,**暂未**支持无DNS环境下进行测试 | - 支持root或admin环境下测试,支持非root或非admin环境下测试,支持离线环境下进行测试,**暂未**支持无DNS的在线环境下进行测试 | ||||||
|  |  | ||||||
| **本项目初次使用建议查看说明:[跳转](https://github.com/oneclickvirt/ecs/blob/master/README_NEW_USER.md)** | **本项目初次使用建议查看说明:[跳转](https://github.com/oneclickvirt/ecs/blob/master/README_NEW_USER.md)** | ||||||
|  |  | ||||||
| @@ -243,6 +242,8 @@ Usage: goecs [options] | |||||||
| 1. 下载带 exe 文件的压缩包:[Releases](https://github.com/oneclickvirt/ecs/releases) | 1. 下载带 exe 文件的压缩包:[Releases](https://github.com/oneclickvirt/ecs/releases) | ||||||
| 2. 解压后,右键以管理员模式运行。 | 2. 解压后,右键以管理员模式运行。 | ||||||
|  |  | ||||||
|  | PS:如果是虚拟机环境,不以管理员模式运行也行,因为虚拟机无原生的测试工具,将自动启用替代方法测试。 | ||||||
|  |  | ||||||
| --- | --- | ||||||
|  |  | ||||||
| ### **Docker** | ### **Docker** | ||||||
| @@ -374,7 +375,7 @@ GOOS=darwin GOARCH=amd64 go build -o goecs_darwin | |||||||
|  |  | ||||||
| ## 致谢 | ## 致谢 | ||||||
|  |  | ||||||
| 感谢 [he.net](https://he.net) [bgp.tools](https://bgp.tools) [ipinfo.io](https://ipinfo.io) [maxmind.com](https://www.maxmind.com/en/home) [cloudflare.com](https://www.cloudflare.com/) [ip.sb](https://ip.sb) [scamalytics.com](https://scamalytics.com) [abuseipdb.com](https://www.abuseipdb.com/) [ip2location.com](https://ip2location.com/) [ip-api.com](https://ip-api.com) [ipregistry.co](https://ipregistry.co/) [ipdata.co](https://ipdata.co/) [ipgeolocation.io](https://ipgeolocation.io) [ipwhois.io](https://ipwhois.io) [ipapi.com](https://ipapi.com/) [ipapi.is](https://ipapi.is/) [ipqualityscore.com](https://www.ipqualityscore.com/) [bigdatacloud.com](https://www.bigdatacloud.com/) [dkly.net](https://data.dkly.net) [virustotal.com](https://www.virustotal.com/) 等网站提供的API进行检测,感谢互联网各网站提供的查询资源 | 感谢 [he.net](https://he.net) [bgp.tools](https://bgp.tools) [ipinfo.io](https://ipinfo.io) [maxmind.com](https://www.maxmind.com/en/home) [cloudflare.com](https://www.cloudflare.com/) [ip.sb](https://ip.sb) [scamalytics.com](https://scamalytics.com) [abuseipdb.com](https://www.abuseipdb.com/) [ip2location.com](https://ip2location.com/) [ip-api.com](https://ip-api.com) [ipregistry.co](https://ipregistry.co/) [ipdata.co](https://ipdata.co/) [ipgeolocation.io](https://ipgeolocation.io) [ipwhois.io](https://ipwhois.io) [ipapi.com](https://ipapi.com/) [ipapi.is](https://ipapi.is/) [ipqualityscore.com](https://www.ipqualityscore.com/) [bigdatacloud.com](https://www.bigdatacloud.com/) [dkly.net](https://data.dkly.net) [virustotal.com](https://www.virustotal.com/) [ipfighter.com](https://ipfighter.com/) [getipintel.net](http://check.getipintel.net/) [fraudlogix.com](https://fraudlogix.com) 等网站提供的API进行检测,感谢互联网各网站提供的查询资源 | ||||||
|  |  | ||||||
| 感谢 | 感谢 | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										10
									
								
								README_EN.md
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								README_EN.md
									
									
									
									
									
								
							| @@ -47,8 +47,6 @@ Shell version: [https://github.com/spiritLHLS/ecs/blob/main/README_EN.md](https: | |||||||
| |--------|-------------------------------------------------------------------------------------------------| | |--------|-------------------------------------------------------------------------------------------------| | ||||||
| | Android(arm64) | Permission issues that are not fixed, no problems with ARM architecture for non-Android systems    | | | Android(arm64) | Permission issues that are not fixed, no problems with ARM architecture for non-Android systems    | | ||||||
| | OpenBSD/NetBSD | Some of Goalng's official libraries do not support this system (especially net-related items) | | | OpenBSD/NetBSD | Some of Goalng's official libraries do not support this system (especially net-related items) | | ||||||
| | Windows(Virtual Machines) | Inaccurate mbw test performance without Admin rights (memory tests) |  |  | ||||||
| | Windows(Physical Machines)(not under Admin) | Inaccurate mbw test performance without Admin rights (memory tests) | |  | ||||||
|  |  | ||||||
| --- | --- | ||||||
|  |  | ||||||
| @@ -56,7 +54,7 @@ Shell version: [https://github.com/spiritLHLS/ecs/blob/main/README_EN.md](https: | |||||||
|  |  | ||||||
| - System basic information query and concurrent IP basic information query: Self-developed [basics](https://github.com/oneclickvirt/basics), [gostun](https://github.com/oneclickvirt/gostun) | - System basic information query and concurrent IP basic information query: Self-developed [basics](https://github.com/oneclickvirt/basics), [gostun](https://github.com/oneclickvirt/gostun) | ||||||
| - CPU test: Self-developed [cputest](https://github.com/oneclickvirt/cputest) supporting sysbench(lua/golang version), geekbench, winsat | - CPU test: Self-developed [cputest](https://github.com/oneclickvirt/cputest) supporting sysbench(lua/golang version), geekbench, winsat | ||||||
| - Memory test: Self-developed [memorytest](https://github.com/oneclickvirt/memorytest) supporting sysbench, dd | - Memory test: Self-developed [memorytest](https://github.com/oneclickvirt/memorytest) supporting sysbench, dd, winsat, mbw, stream | ||||||
| - Disk test: Self-developed [disktest](https://github.com/oneclickvirt/disktest) supporting dd, fio, winsat | - Disk test: Self-developed [disktest](https://github.com/oneclickvirt/disktest) supporting dd, fio, winsat | ||||||
| - Streaming media unlock information concurrent query: Modified from [netflix-verify](https://github.com/sjlleo/netflix-verify) and more to [CommonMediaTests](https://github.com/oneclickvirt/CommonMediaTests) | - Streaming media unlock information concurrent query: Modified from [netflix-verify](https://github.com/sjlleo/netflix-verify) and more to [CommonMediaTests](https://github.com/oneclickvirt/CommonMediaTests) | ||||||
| - Common streaming media tests concurrent query: Self-developed to [UnlockTests](https://github.com/oneclickvirt/UnlockTests), logic modified from [RegionRestrictionCheck](https://github.com/lmc999/RegionRestrictionCheck) and others | - Common streaming media tests concurrent query: Self-developed to [UnlockTests](https://github.com/oneclickvirt/UnlockTests), logic modified from [RegionRestrictionCheck](https://github.com/lmc999/RegionRestrictionCheck) and others | ||||||
| @@ -66,7 +64,7 @@ Shell version: [https://github.com/spiritLHLS/ecs/blob/main/README_EN.md](https: | |||||||
| - Three-network route test: Modified from [NTrace-core](https://github.com/nxtrace/NTrace-core) to [nt3](https://github.com/oneclickvirt/nt3) | - Three-network route test: Modified from [NTrace-core](https://github.com/nxtrace/NTrace-core) to [nt3](https://github.com/oneclickvirt/nt3) | ||||||
| - Speed test: Based on data from [speedtest.net](https://github.com/spiritLHLS/speedtest.net-CN-ID) and [speedtest.cn](https://github.com/spiritLHLS/speedtest.cn-CN-ID), developed to [oneclickvirt/speedtest](https://github.com/oneclickvirt/speedtest) | - Speed test: Based on data from [speedtest.net](https://github.com/spiritLHLS/speedtest.net-CN-ID) and [speedtest.cn](https://github.com/spiritLHLS/speedtest.cn-CN-ID), developed to [oneclickvirt/speedtest](https://github.com/oneclickvirt/speedtest) | ||||||
| - Three-network Ping test: Modified from [ecsspeed](https://github.com/spiritLHLS/ecsspeed) to [pingtest](https://github.com/oneclickvirt/pingtest) | - Three-network Ping test: Modified from [ecsspeed](https://github.com/spiritLHLS/ecsspeed) to [pingtest](https://github.com/oneclickvirt/pingtest) | ||||||
| - Support root or admin environment testing, support non-root or non-admin environment testing, support offline environment for testing, not support no DNS environment for testing | - Support root or admin environment testing, support non-root or non-admin environment testing, support offline environment for testing, **not yet** support no DNS online environment for testing | ||||||
|  |  | ||||||
| **For first-time users of this project, it is recommended to check the instructions: [Jump to](https://github.com/oneclickvirt/ecs/blob/master/README_NEW_USER.md)** | **For first-time users of this project, it is recommended to check the instructions: [Jump to](https://github.com/oneclickvirt/ecs/blob/master/README_NEW_USER.md)** | ||||||
|  |  | ||||||
| @@ -243,6 +241,8 @@ Usage: goecs [options] | |||||||
| 1. Download the compressed file with the .exe file: [Releases](https://github.com/oneclickvirt/ecs/releases) | 1. Download the compressed file with the .exe file: [Releases](https://github.com/oneclickvirt/ecs/releases) | ||||||
| 2. After unzipping, right-click and run as administrator. | 2. After unzipping, right-click and run as administrator. | ||||||
|  |  | ||||||
|  | PS: If it's a VM environment, it's OK not to run it in administrator mode, because VMs have no native testing tools and will automatically enable alternative methods for testing. | ||||||
|  |  | ||||||
| --- | --- | ||||||
|  |  | ||||||
| ### **Docker** | ### **Docker** | ||||||
| @@ -372,7 +372,7 @@ Note that `goecs` allows you to specify CPU test method via parameters. The defa | |||||||
|  |  | ||||||
| ## Thanks | ## Thanks | ||||||
|  |  | ||||||
| Thank [he.net](https://he.net) [bgp.tools](https://bgp.tools) [ipinfo.io](https://ipinfo.io) [maxmind.com](https://www.maxmind.com/en/home) [cloudflare.com](https://www.cloudflare.com/) [ip.sb](https://ip.sb) [scamalytics.com](https://scamalytics.com) [abuseipdb.com](https://www.abuseipdb.com/) [ip2location.com](https://ip2location.com/) [ip-api.com](https://ip-api.com) [ipregistry.co](https://ipregistry.co/) [ipdata.co](https://ipdata.co/) [ipgeolocation.io](https://ipgeolocation.io) [ipwhois.io](https://ipwhois.io) [ipapi.com](https://ipapi.com/) [ipapi.is](https://ipapi.is/) [ipqualityscore.com](https://www.ipqualityscore.com/) [bigdatacloud.com](https://www.bigdatacloud.com/) [dkly.net](https://data.dkly.net) [virustotal.com](https://www.virustotal.com/) and others for providing APIs for testing, and thanks to various websites on the Internet for providing query resources. | Thank [he.net](https://he.net) [bgp.tools](https://bgp.tools) [ipinfo.io](https://ipinfo.io) [maxmind.com](https://www.maxmind.com/en/home) [cloudflare.com](https://www.cloudflare.com/) [ip.sb](https://ip.sb) [scamalytics.com](https://scamalytics.com) [abuseipdb.com](https://www.abuseipdb.com/) [ip2location.com](https://ip2location.com/) [ip-api.com](https://ip-api.com) [ipregistry.co](https://ipregistry.co/) [ipdata.co](https://ipdata.co/) [ipgeolocation.io](https://ipgeolocation.io) [ipwhois.io](https://ipwhois.io) [ipapi.com](https://ipapi.com/) [ipapi.is](https://ipapi.is/) [ipqualityscore.com](https://www.ipqualityscore.com/) [bigdatacloud.com](https://www.bigdatacloud.com/) [dkly.net](https://data.dkly.net) [virustotal.com](https://www.virustotal.com/) [ipfighter.com](https://ipfighter.com/) [getipintel.net](http://check.getipintel.net/) [fraudlogix.com](https://fraudlogix.com) and others for providing APIs for testing, and thanks to various websites on the Internet for providing query resources. | ||||||
|  |  | ||||||
| Thank | Thank | ||||||
|  |  | ||||||
|   | |||||||
| @@ -86,7 +86,7 @@ VM-x/AMD-V/Hyper-V: 是当前测试宿主机是否支持嵌套虚拟化的指标 | |||||||
|  |  | ||||||
| 负载: 显示系统负载 | 负载: 显示系统负载 | ||||||
|  |  | ||||||
| 虚拟化架构: 显示宿主机来自什么虚拟化架构,一般来说推荐```Dedicated > KVM > Xen```虚拟化,其他虚拟化都会存在性能损耗,导致使用的时候存在性能共享/损耗,但这个也说不准,独立服务器才拥有完全独立的资源占用,其他虚拟化基本都会有资源共享,取决于宿主机的持有者对这个虚拟机是否有良心,具体性能优劣还是得看后面的专项性能测试。 | 虚拟化架构: 显示宿主机来自什么虚拟化架构,一般来说推荐```Dedicated > KVM >= Xen```虚拟化,其他虚拟化都会存在性能损耗,导致使用的时候存在性能共享/损耗,但这个也说不准,独立服务器才拥有完全独立的资源占用,其他虚拟化基本都会有资源共享,取决于宿主机的持有者对这个虚拟机是否有良心,具体性能优劣还是得看后面的专项性能测试。 | ||||||
|  |  | ||||||
| NAT类型: 显示NAT类型,具体推荐```Full Cone > Restricted Cone > Port Restricted Cone > Symmetric```,测不出来或者非正规协议的类型会显示```Inconclusive```,一般来说只有特殊用途,比如有特殊的代理、实时通讯、做FRP内穿端口等需求才需要特别关注,其他一般情况下都不用关注本指标。 | NAT类型: 显示NAT类型,具体推荐```Full Cone > Restricted Cone > Port Restricted Cone > Symmetric```,测不出来或者非正规协议的类型会显示```Inconclusive```,一般来说只有特殊用途,比如有特殊的代理、实时通讯、做FRP内穿端口等需求才需要特别关注,其他一般情况下都不用关注本指标。 | ||||||
|  |  | ||||||
| @@ -96,9 +96,9 @@ IPV4/IPV6 ASN: 显示宿主机IP所属的ASN组织ID和名字,同一个IDC可 | |||||||
|  |  | ||||||
| IPV4/IPV6 Location: 显示对应协议的IP在数据库中的地理位置。 | IPV4/IPV6 Location: 显示对应协议的IP在数据库中的地理位置。 | ||||||
|  |  | ||||||
| IPV4 Active IPs: 根据 bgp.tools 信息查询当前CIDR分块中 活跃邻居数量/总邻居数量 由于是非实时的,可能存在延迟。 | IPV4 Active IPs: 根据 bgp.tools 信息查询当前CIDR分块中 活跃邻居数量/总邻居数量 刷新间隔大概是15~20分钟,还是有一定参考性的。(这个总数和比值不是可Ping通的IP数量,是监控到有来自这个IP的请求到全球监控网内的记录,比可ping通更能代表当前活跃的邻居数) | ||||||
|  |  | ||||||
| IPV6 子网掩码:根据宿主机信息查询的本机IPV6子网大小 | IPV6 子网掩码:根据宿主机信息查询的本机IPV6子网大小,如果你需要在本机进行独立的IPV6分配,应该持有至少/80大小的子网才足够进行分配使用。数值计算为2的倍数,数值越小越靠近2则可分配使用的IPV6子网范围越大。 | ||||||
|  |  | ||||||
| ### **CPU测试** | ### **CPU测试** | ||||||
|  |  | ||||||
| @@ -116,16 +116,14 @@ IPV6 子网掩码:根据宿主机信息查询的本机IPV6子网大小 | |||||||
| | 适用场景         | 适合快速测试,仅测试计算性能 | 适合综合全面的测试 | | | 适用场景         | 适合快速测试,仅测试计算性能 | 适合综合全面的测试 | | ||||||
| | 排行榜         | [sysbench.spiritlhl.net](https://sysbench.spiritlhl.net/) | [browser.geekbench.com](https://browser.geekbench.com/) | | | 排行榜         | [sysbench.spiritlhl.net](https://sysbench.spiritlhl.net/) | [browser.geekbench.com](https://browser.geekbench.com/) | | ||||||
|  |  | ||||||
| 默认使用```Sysbench```进行测试,基准大致如下: | ```Sysbench```的基准可见 [CPU Performance Ladder For Sysbench](https://sysbench.spiritlhl.net/) 天梯图,具体得分不取决于测试的sysbench的版本。默认使用```Sysbench```进行测试,基准说明大致如下: | ||||||
|  |  | ||||||
| CPU测试单核```Sysbench```得分在5000以上的可以算第一梯队,4000到5000分算第二梯队,每1000分大致算一档。 | CPU测试单核```Sysbench```得分在5000以上的可以算第一梯队称得上高性能,每1000分大致算一档。 | ||||||
|  |  | ||||||
| AMD的7950x单核满血性能得分在6500左右,AMD的5950x单核满血性能得分5700左右,Intel普通的CPU(E5之类的)在1000~800左右,低于500的单核CPU可以说是性能比较差的了。 | AMD的7950x单核满血性能得分在6500左右,AMD的5950x单核满血性能得分5700左右,Intel普通的CPU(E5之类的)在1000~800左右,低于500的单核CPU可以说是性能比较差的了。 | ||||||
|  |  | ||||||
| 有时候多核得分和单核得分一样,证明商家在限制程序并发使用CPU,典型例子腾讯云。 | 有时候多核得分和单核得分一样,证明商家在限制程序并发使用CPU,典型例子腾讯云。 | ||||||
|  |  | ||||||
| ```Sysbench```的基准可见 [CPU Performance Ladder For Sysbench](https://sysbench.spiritlhl.net/) 天梯图,具体得分不分测试的sysbench的版本。 |  | ||||||
|  |  | ||||||
| ```GeekBench```的基准可见 [官方网站](https://browser.geekbench.com/processor-benchmarks/) 天梯图,具体得分每个```GeekBench```版本都不一样,注意使用时测试的```GeekBench```版本是什么。 | ```GeekBench```的基准可见 [官方网站](https://browser.geekbench.com/processor-benchmarks/) 天梯图,具体得分每个```GeekBench```版本都不一样,注意使用时测试的```GeekBench```版本是什么。 | ||||||
|  |  | ||||||
| 多说一句,```GeekBench```测的很多内容,实际在服务器使用过程中根本用不到,测试仅供参考。当然```Sysbench```非常不全面,但它基于最基础的计算性能可以大致比较CPU的性能。 | 多说一句,```GeekBench```测的很多内容,实际在服务器使用过程中根本用不到,测试仅供参考。当然```Sysbench```非常不全面,但它基于最基础的计算性能可以大致比较CPU的性能。 | ||||||
| @@ -136,7 +134,8 @@ AMD的7950x单核满血性能得分在6500左右,AMD的5950x单核满血性能 | |||||||
|  |  | ||||||
| 依赖项目:[https://github.com/oneclickvirt/memorytest](https://github.com/oneclickvirt/memorytest) | 依赖项目:[https://github.com/oneclickvirt/memorytest](https://github.com/oneclickvirt/memorytest) | ||||||
|  |  | ||||||
| 一般来说,只需要判断 IO 速度是否低于 `10240 MB/s (≈10 GB/s)`, | 一般来说,只需要判断 IO 速度是否低于 `10240 MB/s (≈10 GB/s)` | ||||||
|  |  | ||||||
| 如果低于这个值,那么证明内存性能不佳,极大概率存在超售超卖问题。 | 如果低于这个值,那么证明内存性能不佳,极大概率存在超售超卖问题。 | ||||||
|  |  | ||||||
| 至于超开的原因可能是: | 至于超开的原因可能是: | ||||||
| @@ -160,6 +159,16 @@ AMD的7950x单核满血性能得分在6500左右,AMD的5950x单核满血性能 | |||||||
| * **20 \~ 40 GB/s (20480 \~ 40960 MB/s)** → 大概率 DDR4 | * **20 \~ 40 GB/s (20480 \~ 40960 MB/s)** → 大概率 DDR4 | ||||||
| * **≈ 50 GB/s (≈ 51200 MB/s)** → 基本就是 DDR5 | * **≈ 50 GB/s (≈ 51200 MB/s)** → 基本就是 DDR5 | ||||||
|  |  | ||||||
|  | 对于各种测试参数对应方法的比较: | ||||||
|  |  | ||||||
|  | | 参数方法 | 测试准确性 | 速度 | 适应架构 | 依赖情况 | | ||||||
|  | |----------|------------|----------|----------|----------| | ||||||
|  | | stream  | 高, 结果稳定,更符合实际情况 | 快速 | 跨平台(Linux/Windows/Unix) | 自带依赖无需额外安装 | | ||||||
|  | | sysbench | 高, 结果较可靠 | 中等 | 跨平台(Linux、Windows 部分支持) | 需环境额外安装 | | ||||||
|  | | winsat | 中等偏高, Windows 内置工具 | 中等 | 仅限 Windows | 物理机器上自带,虚拟机不可用 | | ||||||
|  | | mbw | 中等, 结果可能受缓存/调度影响 | 快速 | 跨平台(几乎所有类 Unix 系统) | 自带依赖无需额外安装 | | ||||||
|  | | dd | 低, 结果受缓存影响 | 快速 | 跨平台(几乎所有类 Unix 系统) | 自带依赖无需额外安装 | | ||||||
|  |  | ||||||
| ### **硬盘测试** | ### **硬盘测试** | ||||||
|  |  | ||||||
| 依赖项目:[https://github.com/oneclickvirt/disktest](https://github.com/oneclickvirt/disktest) | 依赖项目:[https://github.com/oneclickvirt/disktest](https://github.com/oneclickvirt/disktest) | ||||||
| @@ -210,31 +219,129 @@ AMD的7950x单核满血性能得分在6500左右,AMD的5950x单核满血性能 | |||||||
|  |  | ||||||
| 默认只检测跨国流媒体解锁。 | 默认只检测跨国流媒体解锁。 | ||||||
|  |  | ||||||
| 一般来说,正常的情况下,一个IP多个流媒体的解锁地区都是一致的不会到处乱飘,如果发现多家平台解锁地区不一致,那么IP大概率来自IPXO等平台租赁或者是刚刚宣告和被使用,未被流媒体普通的数据库所识别修正地域。由于各平台的IP数据库识别速度不一致,所以有时候有的平台解锁区域正常,有的飘到路由上的某个位置,有的飘到IP未被你使用前所在的位置。 | 一般来说,正常的情况下,一个IP多个流媒体的解锁地区都是一致的不会到处乱飘,如果发现多家平台解锁地区不一致,那么IP大概率来自IPXO等平台租赁或者是刚刚宣告和被使用,未被流媒体普通的数据库所识别修正地域。 | ||||||
|  |  | ||||||
|  | 由于各平台的IP数据库识别速度不一致,所以有时候有的平台解锁区域正常,有的飘到路由上的某个位置,有的飘到IP未被你使用前所在的位置。 | ||||||
|  |  | ||||||
| | DNS 类型       | 解锁方式判断是否必要 | DNS 对解锁影响 | 说明                                      | | | DNS 类型       | 解锁方式判断是否必要 | DNS 对解锁影响 | 说明                                      | | ||||||
| | ------------ | ---------- | --------- | --------------------------------------- | | | ------------ | ---------- | --------- | --------------------------------------- | | ||||||
| | 官方主流 DNS     | 否          | 小         | 流媒体解锁主要依赖节点 IP,DNS 解析基本不会干扰解锁。          | | | 官方主流 DNS     | 否          | 小         | 流媒体解锁主要依赖测试节点的 IP,DNS 解析基本不会干扰解锁。       | | ||||||
| | 非主流 / 自建 DNS | 是          | 大         | 流媒体解锁结果受 DNS 解析影响较大,需要判断是原生解锁还是 DNS 解锁。 | | | 非主流 / 自建 DNS | 是          | 大         | 流媒体解锁结果受 DNS 解析影响较大,需要判断是原生解锁还是 DNS 解锁。| | ||||||
|  |  | ||||||
| 所以测试过程中,如果宿主机当前使用的是官方主流的DNS,不会进行是否为原生解锁的判断。 | 所以测试过程中,如果宿主机当前使用的是官方主流的DNS,不会进行是否为原生解锁的判断,解锁类型大部分受后面查询的IP质量的使用类型和公司类型的影响。 | ||||||
|  |  | ||||||
|  | 对于IP质量解锁比较敏感的实际上是各大AI平台和本地流媒体,以及reddit和spotify,其他的跨国平台一般不易受IP质量影响解锁。 | ||||||
|  |  | ||||||
| ### **IP质量检测** | ### **IP质量检测** | ||||||
|  |  | ||||||
| 依赖项目:[https://github.com/oneclickvirt/securityCheck](https://github.com/oneclickvirt/securityCheck) | 依赖项目:[https://github.com/oneclickvirt/securityCheck](https://github.com/oneclickvirt/securityCheck) | ||||||
|  |  | ||||||
| 检测14个数据库的IP相关信息,一般来说看使用类型和公司类型还有安全信息的其他判别足矣,安全得分真的图一乐。多个平台比较对应检测项目都为对应值,证明当前IP确实如此,不要仅相信一个数据库源的信息。 | 检测18个数据库的IP相关信息,多个平台比较对应检测项目都为对应值,证明当前IP确实如此,不要仅相信一个数据库源的信息: | ||||||
|  |  | ||||||
| * **使用类型 & 公司类型**:显示IP归属和使用场景,例如是否属于家庭用户、企业办公、托管服务或云/数据中心。 | [ipinfo.io](https://ipinfo.io) [scamalytics.com](https://scamalytics.com) [abuseipdb.com](https://www.abuseipdb.com/) [ip2location.com](https://ip2location.com/) [ip-api.com](https://ip-api.com) [ipregistry.co](https://ipregistry.co/) [ipdata.co](https://ipdata.co/) [ipgeolocation.io](https://ipgeolocation.io) [ipwhois.io](https://ipwhois.io) [ipapi.com](https://ipapi.com/) [ipapi.is](https://ipapi.is/) [ipqualityscore.com](https://www.ipqualityscore.com/) [bigdatacloud.com](https://www.bigdatacloud.com/) [dkly.net](https://data.dkly.net) [virustotal.com](https://www.virustotal.com/) [ipfighter.com](https://ipfighter.com/) [getipintel.net](http://check.getipintel.net/) [fraudlogix.com](https://fraudlogix.com) | ||||||
| * **云提供商 / 数据中心 / 移动设备**:判断IP是否来自云服务、数据中心或移动网络,帮助识别共享或高风险IP。 |  | ||||||
| * **代理 / VPN / Tor / Tor出口**:检测IP是否用于隐藏真实身份或位置,可能涉及匿名访问或滥用行为。 |  | ||||||
| * **网络爬虫 / 机器人**:识别自动化访问或采集程序,对安全风险评估有参考价值。 |  | ||||||
| * **匿名 / 滥用者 / 威胁 / 中继 / Bogon**:显示IP历史行为特征和是否属于保留/未分配IP,辅助判断IP可信度。 |  | ||||||
| * **安全得分、声誉、信任得分、威胁得分、欺诈得分、滥用得分**:各数据库对IP的量化安全评价,仅供参考。 |  | ||||||
| * **社区投票 & 黑名单记录**:展示用户反馈及公共黑名单信息,可快速识别潜在风险。 |  | ||||||
| * **Google搜索可行性**:检测IP访问Google搜索服务的可行性,间接反映网络限制或屏蔽情况。 |  | ||||||
|  |  | ||||||
| 多平台对比更可靠,不同数据库算法和更新频率不同,单一来源可能存在误判。多个数据库显示相似结果,说明这个结果更可靠。 | 以下为每个字段的对应的含义 | ||||||
|  |  | ||||||
|  | | 字段类别 | 字段名称 | 字段说明 | 可能的值 | 评分规则 | | ||||||
|  | |---------|---------|---------|---------|---------| | ||||||
|  | | 安全得分 | 声誉(Reputation) | IP地址在安全社区中的信誉评分 | 0-100的数值 | 越高越好 | | ||||||
|  | | | 信任得分(Trust Score) | IP地址的可信任程度评分 | 0-100的数值 | 越高越好 | | ||||||
|  | | | VPN得分(VPN Score) | IP被识别为VPN的可能性评分 | 0-100的数值 | 越低越好 | | ||||||
|  | | | 代理得分(Proxy Score) | IP被识别为代理的可能性评分 | 0-100的数值 | 越低越好 | | ||||||
|  | | | 社区投票-无害 | 社区成员投票认为该IP无害的分数 | 非负整数 | 越高越好 | | ||||||
|  | | | 社区投票-恶意 | 社区成员投票认为该IP恶意的分数 | 非负整数 | 越低越好 | | ||||||
|  | | | 威胁得分(Threat Score) | IP地址的整体威胁程度评分 | 0-100的数值 | 越低越好 | | ||||||
|  | | | 欺诈得分(Fraud Score) | IP地址涉及欺诈活动的可能性评分 | 0-100的数值 | 越低越好 | | ||||||
|  | | | 滥用得分(Abuse Score) | IP地址被报告滥用行为的评分 | 0-100的数值 | 越低越好 | | ||||||
|  | | | ASN滥用得分 | 该IP所属ASN(自治系统)的滥用评分 | 0-1的小数,可能带有风险等级标注(Low/Medium/High) | 越低越好 | | ||||||
|  | | | 公司滥用得分 | 该IP所属公司的滥用评分 | 0-1的小数,可能带有风险等级标注(Low/Medium/High) | 越低越好 | | ||||||
|  | | | 威胁级别(Threat Level) | IP地址的威胁等级分类 | low/medium/high/critical等文本描述 | low为最佳 | | ||||||
|  | | 黑名单记录 | 无害记录数(Harmless) | 在各黑名单数据库中被标记为无害的次数 | 非负整数 | 数值本身无好坏 | | ||||||
|  | | | 恶意记录数(Malicious) | 在各黑名单数据库中被标记为恶意的次数 | 非负整数 | 越低越好 | | ||||||
|  | | | 可疑记录数(Suspicious) | 在各黑名单数据库中被标记为可疑的次数 | 非负整数 | 越低越好 | | ||||||
|  | | | 无记录数(Undetected) | 在各黑名单数据库中无任何记录的次数 | 非负整数 | 数值本身无好坏 | | ||||||
|  | | | DNS黑名单-总检查数 | 检查的DNS黑名单数据库总数量 | 正整数 | 数值本身无好坏 | | ||||||
|  | | | DNS黑名单-干净 | 在DNS黑名单中显示为干净(未列入)的数量 | 非负整数 | 越高越好 | | ||||||
|  | | | DNS黑名单-已列入 | 在DNS黑名单中已被列入的数量 | 非负整数 | 越低越好 | | ||||||
|  | | | DNS黑名单-其他 | 在DNS黑名单检查中返回其他状态的数量 | 非负整数 | 数值本身无好坏 | | ||||||
|  |  | ||||||
|  | 一般来说看下面的使用类型公司类型还有安全信息的判别足矣,上面的安全得分只有多个数据库确认一致才可信,不看也没啥问题。(IDC: 一般买服务器识别成这个的多,就是正常的在数据中心机房广播使用的类型) | ||||||
|  |  | ||||||
|  | | 使用类型        | 说明         | | ||||||
|  | | ----------- | ---------- | | ||||||
|  | | hosting     | 主机/服务器用途(IDC)    | | ||||||
|  | | residential | 家庭/住宅网络(家宽)    | | ||||||
|  | | FixedLineISP,ISP | 固定线路互联网服务提供商(家宽) | | ||||||
|  | | business    | 企业办公网络(商宽)      | | ||||||
|  | | cellular    | 移动运营商网络(家宽)    | | ||||||
|  | | education   | 教育机构网络(教育网)     | | ||||||
|  | | government  | 政府机构网络(政府网)     | | ||||||
|  | | military    | 军事网络(政府网)       | | ||||||
|  | | DataCenter  | 数据中心网络(IDC)      | | ||||||
|  | | WebHosting  | 网站托管服务(IDC)      | | ||||||
|  | | Transit     | 互联网中继/传输网络(IDC)  | | ||||||
|  | | CDN         | 内容分发网络(IDC)      | | ||||||
|  |  | ||||||
|  | | 公司类型         | 说明           | | ||||||
|  | | ------------ | ------------ | | ||||||
|  | | business     | 企业公司(商宽)         | | ||||||
|  | | hosting      | 主机/数据中心公司(IDC)    | | ||||||
|  | | FixedLineISP,ISP | 固定线路互联网服务提供商(家宽) | | ||||||
|  | | education    | 教育机构(教育网)         | | ||||||
|  | | government   | 政府机构(政府网)         | | ||||||
|  |  | ||||||
|  | 其他安全信息字段: | ||||||
|  |  | ||||||
|  | | 字段类别 | 字段名称 | 字段说明 | 可能的值 | 评分规则 | | ||||||
|  | |---------|---------|---------|---------|---------| | ||||||
|  | | 云提供商 | 是否云提供商(Cloud Provider) | 该IP是否属于云服务提供商 | Yes/No | 无好坏之分,仅标识 | | ||||||
|  | | 数据中心 | 是否数据中心(Data Center) | 该IP是否位于数据中心 | Yes/No | 如果关注解锁No为最佳 | | ||||||
|  | | 移动设备 | 是否移动设备(Mobile) | 该IP是否来自移动设备网络 | Yes/No | 如果关注解锁Yes为最佳 | | ||||||
|  | | 代理 | 是否代理(Proxy) | 该IP是否为代理服务器 | Yes/No | No为佳 | | ||||||
|  | | VPN | 是否VPN | 该IP是否为VPN服务节点 | Yes/No | No为佳 | | ||||||
|  | | Tor出口 | 是否TorExit(Tor Exit Node) | 该IP是否为Tor网络的出口节点 | Yes/No | No为佳 | | ||||||
|  | | 网络爬虫 | 是否网络爬虫(Crawler) | 该IP是否被识别为网络爬虫 | Yes/No | No为佳 | | ||||||
|  | | 匿名 | 是否匿名(Anonymous) | 该IP是否提供匿名服务(如VPN/Proxy/Tor) | Yes/No | No为佳 | | ||||||
|  | | 攻击者 | 是否攻击者(Attacker) | 该IP是否被识别为攻击来源(如DDOS) | Yes/No | No为佳 | | ||||||
|  | | 滥用者 | 是否滥用者(Abuser) | 该IP是否有主动滥用行为记录 | Yes/No | No为佳 | | ||||||
|  | | 威胁 | 是否威胁(Threat) | 该IP是否被标记为威胁来源 | Yes/No | No为佳 | | ||||||
|  | | 中继 | 是否中继(Relay) | 该IP是否为中继节点 | Yes/No | No为佳 | | ||||||
|  | | Bogon | 是否Bogon(Bogon IP) | 该IP是否为伪造/未分配的IP地址 | Yes/No | No为佳 | | ||||||
|  | | 机器人 | 是否机器人(Bot) | 该IP是否被识别为机器人流量 | Yes/No | No为佳 | | ||||||
|  | | 搜索引擎 | Google搜索可行性 | 该IP能否正常使用Google搜索服务 | YES/NO | YES为正常 | | ||||||
|  |  | ||||||
|  | 多平台对比更可靠,不同数据库算法和更新频率不同,单一来源可能存在误判,多个数据库显示相似结果,说明这个结果更可靠。 | ||||||
|  |  | ||||||
|  | Abuser 或 Abuse 的滥用得分会直接影响机器的正常使用(中国境内运营商一般默认不处理,如果你的机器是中国IP无需理睬)。 | ||||||
|  |  | ||||||
|  | 如果 Abuse 记录存在且滥用得分高,说明该 IP 过去可能存在以下行为:   | ||||||
|  | - 被用于 DDoS 攻击   | ||||||
|  | - 发起大规模洪流攻击   | ||||||
|  | - 进行端口扫描或全网扫描   | ||||||
|  |  | ||||||
|  | 这类历史记录会被举报并录入 Abuse 数据库。如果你接手的 IP 刚被他人滥用过,可能仍会有延迟的 Abuse 警告邮件发送至服务商。服务商可能会误判为你本人从事恶意行为,进而清退机器,且大多数情况下无法退款。对跨国流媒体服务而言,Abuse 滥用得分还可能影响平台对该 IP 的信誉评分。 | ||||||
|  |  | ||||||
|  | 对于需要家宽进行流媒体解锁需求的用户(如电商需求),应关注「使用类型」与「公司类型」是否同时识别为 ISP。如果仅为单 ISP 或识别为非 ISP,则后续数据库更新后,IP 类型很可能被更正为 Hosting,从而影响解锁效果。 | ||||||
|  |  | ||||||
|  | 大部分 IP 识别数据库按月更新。更新后,IP 属性可能被修改,出现由 ISP → Hosting 的情况。对于一些敏感的平台,比如某些特定国家的流媒体(如 Netflix,Spotify),某些区别对待不同国家的流媒体(如 TikTok),非家宽解锁的可能性较低但不是没有,如果你需要稳定解锁且追求其特殊功能解锁,才需要追求家宽流媒体解锁。如果仅仅是浏览观看,很多时候没必要追求家宽, | ||||||
|  |  | ||||||
|  | 对于 IP 类型分类有必要仔细说说 | ||||||
|  |  | ||||||
|  | 家宽 IP   | ||||||
|  | - 归属地与广播地一致,广播主体为当地电信运营商的 AS   | ||||||
|  | - 必须通过国际带宽线路广播,才能被识别为家宽属性   | ||||||
|  |  | ||||||
|  | 原生 IP   | ||||||
|  | - 归属地与持有人一致,但广播主体并非本地电信运营商 | ||||||
|  | - 常见于数据中心使用自有 AS 号进行广播,即便采购到家宽 IP,属性也会在一段时间后变更为原生 | ||||||
|  |  | ||||||
|  | 广播 IP   | ||||||
|  | - 由 A 地的 AS 将 IP 广播到 B 地使用 | ||||||
|  | - 广播传播需要时间,通常 1 周至 1 个月   | ||||||
|  | - 各大运营商的归属地数据库更新可能需 1 至数月   | ||||||
|  | - 若本地机房进行广播,家宽 IP 可能会被更正为原生或广播属性   | ||||||
|  |  | ||||||
|  | 说到这里,就必须说明凡是真家宽,那它访问目标站点的时候,肯定不会绕行回中国再到目标站点。真实的境外家庭宽带一定是就近出国、就近落地。 | ||||||
|  |  | ||||||
| ### **邮件端口检测** | ### **邮件端口检测** | ||||||
|  |  | ||||||
| @@ -264,12 +371,12 @@ AMD的7950x单核满血性能得分在6500左右,AMD的5950x单核满血性能 | |||||||
|  |  | ||||||
| | 等级 | 描述 | | | 等级 | 描述 | | ||||||
| |------|------| | |------|------| | ||||||
| | **Tier 1 Global** | 全球顶级运营商(如 AT&T、Verizon、NTT、Telia 等),之间免费互联(Settlement-Free Peering),不依赖他人即可访问全球任意网络。 | | | **Tier 1 Global** | 全球顶级运营商(如 AT&T、Verizon、NTT、Telia 等),之间免费互联(Settlement-Free Peering),不依赖他人即可访问全球任意网络。| | ||||||
| | **Tier 1 Regional** | 区域性顶级运营商,在特定区域具有一级能力,但在全球范围互联性稍弱。 | | | **Tier 1 Regional** | 区域性顶级运营商,在特定区域具有一级能力,但在全球范围互联性稍弱。| | ||||||
| | **Tier 1 Indirect** | 间接连接的 Tier 1(非直接购买),通过中间上游间接接入 Tier 1 网络。 | | | **Tier 1 Indirect** | 间接连接的 Tier 1(非直接购买),通过中间上游间接接入 Tier 1 网络。| | ||||||
| | **Tier 2** | 需要向 Tier 1 付费购买上网能力的二级运营商,通常是各国主流电信商或 ISP。 | | | **Tier 2** | 需要向 Tier 1 付费购买上网能力的二级运营商,通常是各国主流电信商或 ISP。| | ||||||
| | **CDN Provider** | 内容分发网络提供商,如 Cloudflare、Akamai、Fastly 等,主要用于内容加速而非传统上游。 | | | **CDN Provider** | 内容分发网络提供商,如 Cloudflare、Akamai、Fastly 等,主要用于内容加速而非传统上游。| | ||||||
| | **Direct/Indirect Others** | 其他类型的直接或间接连接,如 IX(Internet Exchange)成员、私有对等互联等。 | | | **Direct/Indirect Others** | 其他类型的直接或间接连接,如 IX(Internet Exchange)成员、私有对等互联等。| | ||||||
|  |  | ||||||
| 上游质量判断:直接接入的高等级上游(特别是 Tier 1 Global)越多,通常网络连通性越好。但实际网络质量也受到以下因素影响: | 上游质量判断:直接接入的高等级上游(特别是 Tier 1 Global)越多,通常网络连通性越好。但实际网络质量也受到以下因素影响: | ||||||
|  |  | ||||||
| @@ -361,7 +468,7 @@ Dependency project: [https://github.com/oneclickvirt/basics](https://github.com/ | |||||||
|  |  | ||||||
| **Load**: Shows system load | **Load**: Shows system load | ||||||
|  |  | ||||||
| **Virtualization Architecture**: Shows what virtualization architecture the host comes from. Generally recommended: `Dedicated > KVM > Xen` virtualization. Other virtualization types have performance losses, causing performance sharing/loss during use. However, this isn't definitive - only dedicated servers have completely independent resource usage. Other virtualization basically involves resource sharing, depending on whether the host holder is conscientious about this virtual machine. Actual performance superiority still depends on subsequent specialized performance tests. | **Virtualization Architecture**: Shows what virtualization architecture the host comes from. Generally recommended: `Dedicated > KVM >= Xen` virtualization. Other virtualization types have performance losses, causing performance sharing/loss during use. However, this isn't definitive - only dedicated servers have completely independent resource usage. Other virtualization basically involves resource sharing, depending on whether the host holder is conscientious about this virtual machine. Actual performance superiority still depends on subsequent specialized performance tests. | ||||||
|  |  | ||||||
| **NAT Type**: Shows NAT type. Specifically recommended: `Full Cone > Restricted Cone > Port Restricted Cone > Symmetric`. Undetectable or non-standard protocol types show as `Inconclusive`. Generally, only special purposes like specific proxies, real-time communication, or FRP port forwarding need special attention to this indicator; other general situations don't need to focus on this metric. | **NAT Type**: Shows NAT type. Specifically recommended: `Full Cone > Restricted Cone > Port Restricted Cone > Symmetric`. Undetectable or non-standard protocol types show as `Inconclusive`. Generally, only special purposes like specific proxies, real-time communication, or FRP port forwarding need special attention to this indicator; other general situations don't need to focus on this metric. | ||||||
|  |  | ||||||
| @@ -371,9 +478,9 @@ Dependency project: [https://github.com/oneclickvirt/basics](https://github.com/ | |||||||
|  |  | ||||||
| **IPV4/IPV6 Location**: Shows the geographic location of the corresponding protocol's IP in the database. | **IPV4/IPV6 Location**: Shows the geographic location of the corresponding protocol's IP in the database. | ||||||
|  |  | ||||||
| **IPV4 Active IPs**: Based on bgp.tools information, queries active neighbor count/total neighbor count in the current CIDR block. Since this is non-real-time, there may be delays. | **IPV4 Active IPs:** According to bgp.tools data, the refresh interval for the number of active neighbors/total neighbors within the current CIDR block is approximately 15–20 minutes, which is fairly reliable. (This total and ratio do not represent the number of pingable IPs, but rather the number of IPs observed sending requests to the global monitoring network, which more accurately reflects the number of currently active neighbors.) | ||||||
|  |  | ||||||
| **IPV6 Subnet Mask**: Queries the local IPV6 subnet size based on host information. | **IPV6 Subnet Mask:** The local IPv6 subnet size is determined based on the host machine’s configuration. If you intend to allocate independent IPv6 addresses locally, you should possess at least a /80 subnet to ensure sufficient address space. The value is calculated as a power of 2 — the smaller the number, the closer it is to 2, and the larger the available IPv6 subnet range. | ||||||
|  |  | ||||||
| ### CPU Testing | ### CPU Testing | ||||||
|  |  | ||||||
| @@ -391,16 +498,14 @@ Supports command-line parameter selection between `GeekBench` and `Sysbench` for | |||||||
| | Use Case | Suitable for quick testing, only tests computational performance | Suitable for comprehensive testing | | | Use Case | Suitable for quick testing, only tests computational performance | Suitable for comprehensive testing | | ||||||
| | Leaderboard | [sysbench.spiritlhl.net](https://sysbench.spiritlhl.net/) | [browser.geekbench.com](https://browser.geekbench.com/) | | | Leaderboard | [sysbench.spiritlhl.net](https://sysbench.spiritlhl.net/) | [browser.geekbench.com](https://browser.geekbench.com/) | | ||||||
|  |  | ||||||
| Default uses `Sysbench` for testing, with rough benchmarks as follows: | `Sysbench` benchmarks can be seen in the [CPU Performance Ladder For Sysbench](https://sysbench.spiritlhl.net/) tier chart. The specific score does not depend on the version of Sysbench used for the test. Default uses `Sysbench` for testing, with rough benchmarks as follows: | ||||||
|  |  | ||||||
| CPU test single-core `Sysbench` scores above 5000 can be considered first-tier, 4000-5000 points second-tier, roughly one tier per 1000 points. | A single-core CPU score of over 5000 in **Sysbench** can be considered first-tier and classified as high performance, with roughly one tier for every 1000 points. | ||||||
|  |  | ||||||
| AMD 7950x single-core full performance scores around 6500, AMD 5950x single-core full performance scores around 5700, Intel regular CPUs (E5 series) around 1000-800, single-core CPUs below 500 can be considered poor performance. | AMD 7950x single-core full performance scores around 6500, AMD 5950x single-core full performance scores around 5700, Intel regular CPUs (E5 series) around 1000-800, single-core CPUs below 500 can be considered poor performance. | ||||||
|  |  | ||||||
| Sometimes multi-core and single-core scores are identical, proving the merchant is limiting program concurrent CPU usage, typical example being Tencent Cloud. | Sometimes multi-core and single-core scores are identical, proving the merchant is limiting program concurrent CPU usage, typical example being Tencent Cloud. | ||||||
|  |  | ||||||
| `Sysbench` benchmarks can be seen in the [CPU Performance Ladder For Sysbench](https://sysbench.spiritlhl.net/) tier chart. Specific scores depend on the sysbench version tested. |  | ||||||
|  |  | ||||||
| `GeekBench` benchmarks can be seen in the [official website](https://browser.geekbench.com/processor-benchmarks/) tier chart. Specific scores differ for each `GeekBench` version, pay attention to which `GeekBench` version was used during testing. | `GeekBench` benchmarks can be seen in the [official website](https://browser.geekbench.com/processor-benchmarks/) tier chart. Specific scores differ for each `GeekBench` version, pay attention to which `GeekBench` version was used during testing. | ||||||
|  |  | ||||||
| One more thing: `GeekBench` tests many things that are actually unused in server operations, tests are for reference only. Of course, `Sysbench` is very incomplete, but it can roughly compare CPU performance based on the most basic computational performance. | One more thing: `GeekBench` tests many things that are actually unused in server operations, tests are for reference only. Of course, `Sysbench` is very incomplete, but it can roughly compare CPU performance based on the most basic computational performance. | ||||||
| @@ -412,6 +517,7 @@ Actually, CPU performance testing should be sufficient. Unless for scientific co | |||||||
| Dependency project: [https://github.com/oneclickvirt/memorytest](https://github.com/oneclickvirt/memorytest) | Dependency project: [https://github.com/oneclickvirt/memorytest](https://github.com/oneclickvirt/memorytest) | ||||||
|  |  | ||||||
| Generally speaking, you only need to determine if IO speed is below `10240 MB/s (≈10 GB/s)`. | Generally speaking, you only need to determine if IO speed is below `10240 MB/s (≈10 GB/s)`. | ||||||
|  |  | ||||||
| If below this value, it proves poor memory performance with high probability of overselling issues. | If below this value, it proves poor memory performance with high probability of overselling issues. | ||||||
|  |  | ||||||
| Possible reasons for overselling: | Possible reasons for overselling: | ||||||
| @@ -435,6 +541,14 @@ Based on the above table, this project's rough judgment method: | |||||||
| * **20 ~ 40 GB/s (20480 ~ 40960 MB/s)** → Most likely DDR4 | * **20 ~ 40 GB/s (20480 ~ 40960 MB/s)** → Most likely DDR4 | ||||||
| * **≈ 50 GB/s (≈ 51200 MB/s)** → Basically DDR5 | * **≈ 50 GB/s (≈ 51200 MB/s)** → Basically DDR5 | ||||||
|  |  | ||||||
|  | | Parameter Method | Test Accuracy | Test Speed | Architecture Compatibility | Dependency Requirements | | ||||||
|  | |----------|------------|----------|----------|----------| | ||||||
|  | | stream | High — Stable results, more realistic | Fast | Cross-platform (Linux/Windows/Unix) | Built-in dependencies, no additional installation required | | ||||||
|  | | sysbench | High — Reliable results | Medium | Cross-platform (Linux, partial Windows support) | Requires additional environment installation | | ||||||
|  | | winsat | Medium-High — Windows built-in tool | Medium | Windows only | Built-in on physical machines, unavailable on virtual machines | | ||||||
|  | | mbw | Medium — Results may be affected by cache/scheduling | Very Fast | Cross-platform (almost all Unix-like systems) | Built-in dependencies, no additional installation required | | ||||||
|  | | dd | Low — Results affected by cache | Fast | Cross-platform (almost all Unix-like systems) | Built-in dependencies, no additional installation required | | ||||||
|  |  | ||||||
| ### Disk Testing | ### Disk Testing | ||||||
|  |  | ||||||
| Dependency project: [https://github.com/oneclickvirt/disktest](https://github.com/oneclickvirt/disktest) | Dependency project: [https://github.com/oneclickvirt/disktest](https://github.com/oneclickvirt/disktest) | ||||||
| @@ -485,7 +599,9 @@ Dependency project: [https://github.com/oneclickvirt/CommonMediaTests](https://g | |||||||
|  |  | ||||||
| Default only checks cross-border streaming media unlocking. | Default only checks cross-border streaming media unlocking. | ||||||
|  |  | ||||||
| Generally speaking, under normal circumstances, multiple streaming services for one IP should have consistent unlock regions without scattered locations. If multiple platforms show inconsistent unlock regions, the IP likely comes from platforms like IPXO rentals or has been recently announced and used, not yet recognized and corrected by streaming media common databases. Due to inconsistent IP database recognition speeds across platforms, sometimes some platforms unlock regions normally, some drift to certain router locations, and some drift to where the IP was before you used it. | Generally speaking, under normal circumstances, multiple streaming services for one IP should have consistent unlock regions without scattered locations. If multiple platforms show inconsistent unlock regions, the IP likely comes from platforms like IPXO rentals or has been recently announced and used, not yet recognized and corrected by streaming media common databases.  | ||||||
|  |  | ||||||
|  | Due to inconsistent IP database recognition speeds across platforms, sometimes some platforms unlock regions normally, some drift to certain router locations, and some drift to where the IP was before you used it. | ||||||
|  |  | ||||||
| | DNS Type | Unlock Method Judgment Necessary | DNS Impact on Unlocking | Description | | | DNS Type | Unlock Method Judgment Necessary | DNS Impact on Unlocking | Description | | ||||||
| | -------- | ------------------------------- | ----------------------- | ----------- | | | -------- | ------------------------------- | ----------------------- | ----------- | | ||||||
| @@ -494,22 +610,118 @@ Generally speaking, under normal circumstances, multiple streaming services for | |||||||
|  |  | ||||||
| So during testing, if the host currently uses official mainstream DNS, no judgment of whether it's native unlocking will be performed. | So during testing, if the host currently uses official mainstream DNS, no judgment of whether it's native unlocking will be performed. | ||||||
|  |  | ||||||
|  | Platforms that are particularly sensitive to IP quality for unlocking include major AI platforms, local streaming services, Reddit, and Spotify. Other multinational platforms are generally less affected by IP quality when it comes to unlocking. | ||||||
|  |  | ||||||
| ### IP Quality Detection | ### IP Quality Detection | ||||||
|  |  | ||||||
| Dependency project: [https://github.com/oneclickvirt/securityCheck](https://github.com/oneclickvirt/securityCheck) | Dependency project: [https://github.com/oneclickvirt/securityCheck](https://github.com/oneclickvirt/securityCheck) | ||||||
|  |  | ||||||
| Detects IP-related information from 14 databases. Generally speaking, looking at usage type, company type, and security information's other discriminators is sufficient. Security scores are really just for fun. When multiple platforms show corresponding detection items all having corresponding values, it proves the current IP is indeed as such - don't trust information from just one database source. | Detect IP-related information from 18 databases. Multiple platforms comparing corresponding detection items all show corresponding values, proving that the current IP is indeed as such. Do not only trust information from a single database source: | ||||||
|  |  | ||||||
| * **Usage Type & Company Type**: Shows IP attribution and usage scenarios, such as whether it belongs to home users, enterprise office, hosting services, or cloud/data centers. | [ipinfo.io](https://ipinfo.io) [scamalytics.com](https://scamalytics.com) [abuseipdb.com](https://www.abuseipdb.com/) [ip2location.com](https://ip2location.com/) [ip-api.com](https://ip-api.com) [ipregistry.co](https://ipregistry.co/) [ipdata.co](https://ipdata.co/) [ipgeolocation.io](https://ipgeolocation.io) [ipwhois.io](https://ipwhois.io) [ipapi.com](https://ipapi.com/) [ipapi.is](https://ipapi.is/) [ipqualityscore.com](https://www.ipqualityscore.com/) [bigdatacloud.com](https://www.bigdatacloud.com/) [dkly.net](https://data.dkly.net) [virustotal.com](https://www.virustotal.com/) [ipfighter.com](https://ipfighter.com/) [getipintel.net](http://check.getipintel.net/) [fraudlogix.com](https://fraudlogix.com) | ||||||
| * **Cloud Provider / Data Center / Mobile Device**: Determines if IP comes from cloud services, data centers, or mobile networks, helping identify shared or high-risk IPs. |  | ||||||
| * **Proxy / VPN / Tor / Tor Exit**: Detects if IP is used to hide real identity or location, possibly involving anonymous access or abuse behavior. |  | ||||||
| * **Web Crawler / Bot**: Identifies automated access or collection programs, with reference value for security risk assessment. |  | ||||||
| * **Anonymous / Abuser / Threat / Relay / Bogon**: Shows IP historical behavior characteristics and whether it belongs to reserved/unallocated IPs, assisting in judging IP credibility. |  | ||||||
| * **Security Score, Reputation, Trust Score, Threat Score, Fraud Score, Abuse Score**: Various databases' quantified security evaluations of IPs, for reference only. |  | ||||||
| * **Community Voting & Blacklist Records**: Shows user feedback and public blacklist information, can quickly identify potential risks. |  | ||||||
| * **Google Search Feasibility**: Tests IP's feasibility for accessing Google search services, indirectly reflecting network restrictions or blocking situations. |  | ||||||
|  |  | ||||||
| Multi-platform comparison is more reliable. Different databases have different algorithms and update frequencies; single sources may misjudge. Similar results from multiple databases indicate higher reliability. | The following are the meanings corresponding to each field | ||||||
|  |  | ||||||
|  | | Field Category | Field Name | Field Description | Possible Values | Scoring Rules | | ||||||
|  | |---------|---------|---------|---------|---------| | ||||||
|  | | Security Score | Reputation | Reputation score of IP address in the security community | Numerical value from 0-100 | Higher is better | | ||||||
|  | | | Trust Score | Trustworthiness score of IP address | Numerical value from 0-100 | Higher is better | | ||||||
|  | | | VPN Score | Likelihood score of IP being identified as VPN | Numerical value from 0-100 | Lower is better | | ||||||
|  | | | Proxy Score | Likelihood score of IP being identified as proxy | Numerical value from 0-100 | Lower is better | | ||||||
|  | | | Community Votes-Harmless | Score of community members voting the IP as harmless | Non-negative integer | Higher is better | | ||||||
|  | | | Community Votes-Malicious | Score of community members voting the IP as malicious | Non-negative integer | Lower is better | | ||||||
|  | | | Threat Score | Overall threat level score of IP address | Numerical value from 0-100 | Lower is better | | ||||||
|  | | | Fraud Score | Likelihood score of IP address being involved in fraudulent activities | Numerical value from 0-100 | Lower is better | | ||||||
|  | | | Abuse Score | Score of IP address being reported for abusive behavior | Numerical value from 0-100 | Lower is better | | ||||||
|  | | | ASN Abuse Score | Abuse score of the ASN (Autonomous System) to which this IP belongs | Decimal from 0-1, may include risk level notation (Low/Medium/High) | Lower is better | | ||||||
|  | | | Company Abuse Score | Abuse score of the company to which this IP belongs | Decimal from 0-1, may include risk level notation (Low/Medium/High) | Lower is better | | ||||||
|  | | | Threat Level | Threat level classification of IP address | Text descriptions such as low/medium/high/critical | low is best | | ||||||
|  | | Blacklist Records | Harmless Count | Number of times marked as harmless in various blacklist databases | Non-negative integer | Value itself has no good or bad | | ||||||
|  | | | Malicious Count | Number of times marked as malicious in various blacklist databases | Non-negative integer | Lower is better | | ||||||
|  | | | Suspicious Count | Number of times marked as suspicious in various blacklist databases | Non-negative integer | Lower is better | | ||||||
|  | | | Undetected Count | Number of times with no records in various blacklist databases | Non-negative integer | Value itself has no good or bad | | ||||||
|  | | | DNS Blacklist-Total Checks | Total number of DNS blacklist databases checked | Positive integer | Value itself has no good or bad | | ||||||
|  | | | DNS Blacklist-Clean | Number showing as clean (not listed) in DNS blacklists | Non-negative integer | Higher is better | | ||||||
|  | | | DNS Blacklist-Listed | Number already listed in DNS blacklists | Non-negative integer | Lower is better | | ||||||
|  | | | DNS Blacklist-Other | Number returning other statuses in DNS blacklist checks | Non-negative integer | Value itself has no good or bad | | ||||||
|  |  | ||||||
|  | Generally speaking, checking the usage type, company type, and security information below is sufficient. The security score above is only reliable when confirmed by multiple databases, so it's not a problem to skip it. (IDC: generally buy vps identified as this much, is normal in the data center room broadcasting the type of use) | ||||||
|  |  | ||||||
|  | | Usage Type        | Description         | | ||||||
|  | | ----------- | ---------- | | ||||||
|  | | hosting     | Host/Server usage (IDC)    | | ||||||
|  | | residential | Home/Residential network (Home broadband)    | | ||||||
|  | | FixedLineISP, ISP | Fixed-line Internet Service Provider (Home broadband) | | ||||||
|  | | business    | Enterprise office network (Business broadband)      | | ||||||
|  | | cellular    | Mobile carrier network (Home broadband)    | | ||||||
|  | | education   | Educational institution network (Education network)     | | ||||||
|  | | government  | Government institution network (Government network)     | | ||||||
|  | | military    | Military network (Government network)       | | ||||||
|  | | DataCenter  | Data center network (IDC)      | | ||||||
|  | | WebHosting  | Web hosting service (IDC)      | | ||||||
|  | | Transit     | Internet transit/transport network (IDC)  | | ||||||
|  | | CDN         | Content Delivery Network (IDC)      | | ||||||
|  |  | ||||||
|  | | Company Type         | Description           | | ||||||
|  | | ------------ | ------------ | | ||||||
|  | | business     | Business company (Business broadband)         | | ||||||
|  | | hosting      | Hosting/Data center company (IDC)    | | ||||||
|  | | FixedLineISP, ISP | Fixed-line Internet Service Provider (Home broadband) | | ||||||
|  | | education    | Educational institution (Education network)         | | ||||||
|  | | government   | Government institution (Government network)         | | ||||||
|  |  | ||||||
|  | Other security information fields: | ||||||
|  |  | ||||||
|  | | Field Category | Field Name | Field Description | Possible Values | Scoring Rules | | ||||||
|  | |---------|---------|---------|---------|---------| | ||||||
|  | | Cloud Provider | Is Cloud Provider | Whether this IP belongs to a cloud service provider | Yes/No | No good or bad, identification only | | ||||||
|  | | Data Center | Is Data Center | Whether this IP is located in a data center | Yes/No | No is best if concerned about unblocking | | ||||||
|  | | Mobile | Is Mobile | Whether this IP is from a mobile device network | Yes/No | Yes is best if concerned about unblocking | | ||||||
|  | | Proxy | Is Proxy | Whether this IP is a proxy server | Yes/No | No is better | | ||||||
|  | | VPN | Is VPN | Whether this IP is a VPN service node | Yes/No | No is better | | ||||||
|  | | Tor Exit | Is TorExit (Tor Exit Node) | Whether this IP is a Tor network exit node | Yes/No | No is better | | ||||||
|  | | Crawler | Is Crawler | Whether this IP is identified as a web crawler | Yes/No | No is better | | ||||||
|  | | Anonymous | Is Anonymous | Whether this IP provides anonymity services (such as VPN/Proxy/Tor) | Yes/No | No is better | | ||||||
|  | | Attacker | Is Attacker | Whether this IP is identified as an attack source (such as DDOS) | Yes/No | No is better | | ||||||
|  | | Abuser | Is Abuser | Whether this IP has records of active abuse behavior | Yes/No | No is better | | ||||||
|  | | Threat | Is Threat | Whether this IP is marked as a threat source | Yes/No | No is better | | ||||||
|  | | Relay | Is Relay | Whether this IP is a relay node | Yes/No | No is better | | ||||||
|  | | Bogon | Is Bogon (Bogon IP) | Whether this IP is a forged/unallocated IP address | Yes/No | No is better | | ||||||
|  | | Bot | Is Bot | Whether this IP is identified as bot traffic | Yes/No | No is better | | ||||||
|  | | Search Engine | Google Search Feasibility | Whether this IP can use Google search service normally | YES/NO | YES is normal | | ||||||
|  |  | ||||||
|  | Multi-platform comparison is more reliable. Different databases have different algorithms and update frequencies. A single source may have misjudgments. If multiple databases show similar results, it indicates the result is more reliable. | ||||||
|  |  | ||||||
|  | Abuser or Abuse scores directly affect the normal use of machines. | ||||||
|  |  | ||||||
|  | If Abuse records exist and the score is high, it indicates that the IP may have been involved in the following behaviors in the past: | ||||||
|  | - Used for DDoS attacks | ||||||
|  | - Launched large-scale flood attacks | ||||||
|  | - Conducted port scanning or network-wide scanning | ||||||
|  |  | ||||||
|  | Such historical records will be reported and entered into the Abuse database. If the IP you take over has just been abused by others, delayed Abuse warning emails may still be sent to the service provider. The service provider may misjudge you as the person engaging in malicious behavior, and then terminate the machine, and in most cases, no refund will be given. For cross-border streaming services, Abuse scores may also affect the platform's reputation rating for that IP. | ||||||
|  |  | ||||||
|  | For users who need residential broadband for streaming unlock requirements (such as e-commerce needs), attention should be paid to whether "Usage Type" and "Company Type" are both identified as ISP. If it is only single ISP or identified as non-ISP, after subsequent database updates, the IP type is likely to be corrected to Hosting, thereby affecting unlock effectiveness. | ||||||
|  |  | ||||||
|  | Most IP identification databases are updated monthly. After updates, IP attributes may be modified, resulting in situations where ISP → Hosting occurs. For some sensitive platforms, such as streaming services in certain specific countries (like Netflix, Spotify), or streaming services that treat different countries differently (like TikTok), the possibility of non-residential unlock is low but not impossible. If you need stable unlock and pursue its special function unlock, you only need to pursue residential broadband streaming unlock. If you're just browsing and watching, there's often no need to pursue residential broadband. | ||||||
|  |  | ||||||
|  | It is necessary to elaborate on IP type classification | ||||||
|  |  | ||||||
|  | Residential Broadband IP | ||||||
|  | - The attribution location is consistent with the broadcast location, and the broadcast entity is the local telecom operator's AS | ||||||
|  | - Must be broadcast through international bandwidth lines to be recognized as residential broadband attributes | ||||||
|  |  | ||||||
|  | Native IP | ||||||
|  | - The attribution location is consistent with the holder, but the broadcast entity is not a local telecom operator | ||||||
|  | - Common in data centers using their own AS numbers for broadcasting. Even if residential broadband IPs are acquired, the attributes will change to native after a period of time | ||||||
|  |  | ||||||
|  | Broadcast IP | ||||||
|  | - IP broadcast from location A's AS to location B for use | ||||||
|  | - Broadcast propagation takes time, usually 1 week to 1 month | ||||||
|  | - Major operators' attribution location database updates may take 1 to several months | ||||||
|  | - If local machine rooms conduct broadcasting, residential broadband IPs may be corrected to native or broadcast attributes | ||||||
|  |  | ||||||
|  | Speaking of this, it must be stated that any true residential broadband, when accessing target sites, will definitely not route back to your country and then to the target site. Real overseas home broadband must exit nearby and land nearby. | ||||||
|  |  | ||||||
| ### Email Port Detection | ### Email Port Detection | ||||||
|  |  | ||||||
| @@ -582,7 +794,7 @@ In daily use, I prefer to use servers with 1Gbps bandwidth, at least the speed o | |||||||
|  |  | ||||||
| **負荷**: システム負荷を表示します | **負荷**: システム負荷を表示します | ||||||
|  |  | ||||||
| **仮想化アーキテクチャ**: ホストがどの仮想化アーキテクチャから来ているかを表示します。一般的に推奨順序:`Dedicated > KVM > Xen`仮想化。その他の仮想化は性能損失があり、使用時に性能共有/損失が発生しますが、これは断定的ではありません。専用サーバーのみが完全に独立したリソース占有を持ちます。その他の仮想化は基本的にリソース共有があり、ホスト保有者がこの仮想マシンに対して良心的かどうかに依存します。実際の性能優劣は後続の専門性能テストを見る必要があります。 | **仮想化アーキテクチャ**: ホストがどの仮想化アーキテクチャから来ているかを表示します。一般的に推奨順序:`Dedicated > KVM >= Xen`仮想化。その他の仮想化は性能損失があり、使用時に性能共有/損失が発生しますが、これは断定的ではありません。専用サーバーのみが完全に独立したリソース占有を持ちます。その他の仮想化は基本的にリソース共有があり、ホスト保有者がこの仮想マシンに対して良心的かどうかに依存します。実際の性能優劣は後続の専門性能テストを見る必要があります。 | ||||||
|  |  | ||||||
| **NATタイプ**: NATタイプを表示します。具体的な推奨順序:`Full Cone > Restricted Cone > Port Restricted Cone > Symmetric`。検出不可能または非標準プロトコルタイプは`Inconclusive`と表示されます。一般的に、特殊な用途、例えば特殊なプロキシ、リアルタイム通信、FRPポート転送などの需要がある場合のみ特別に注意が必要で、その他の一般状況では本指標に注意する必要はありません。 | **NATタイプ**: NATタイプを表示します。具体的な推奨順序:`Full Cone > Restricted Cone > Port Restricted Cone > Symmetric`。検出不可能または非標準プロトコルタイプは`Inconclusive`と表示されます。一般的に、特殊な用途、例えば特殊なプロキシ、リアルタイム通信、FRPポート転送などの需要がある場合のみ特別に注意が必要で、その他の一般状況では本指標に注意する必要はありません。 | ||||||
|  |  | ||||||
| @@ -592,9 +804,9 @@ In daily use, I prefer to use servers with 1Gbps bandwidth, at least the speed o | |||||||
|  |  | ||||||
| **IPV4/IPV6 Location**: 対応プロトコルのIPのデータベース内地理位置を表示します。 | **IPV4/IPV6 Location**: 対応プロトコルのIPのデータベース内地理位置を表示します。 | ||||||
|  |  | ||||||
| **IPV4 Active IPs**: bgp.tools情報に基づき、現在のCIDRブロック内のアクティブ近隣数/総近隣数を照会します。非リアルタイムのため遅延がある可能性があります。 | **IPV4アクティブIP数**:bgp.toolsの情報によると、現在のCIDRブロック内のアクティブな隣接数/総隣接数の更新間隔はおおよそ15〜20分程度で、一定の参考価値があります。(この総数と比率はPing応答のあるIP数ではなく、このIPからグローバル監視ネットワークへのリクエストが観測された記録に基づくもので、Ping応答よりも現在アクティブな隣接数をより正確に表しています) | ||||||
|  |  | ||||||
| **IPV6 サブネットマスク**: ホスト情報に基づいてローカルIPV6サブネットサイズを照会します。 | **IPV6サブネットマスク**:ホストマシンの情報に基づいてローカルのIPV6サブネットサイズを確認します。ローカルで独自にIPV6アドレスを割り当てたい場合、少なくとも/80サイズのサブネットを保有している必要があります。数値は2の倍数で計算され、値が小さいほど割り当て可能なIPV6サブネット範囲が広くなります。 | ||||||
|  |  | ||||||
| ### CPUテスト | ### CPUテスト | ||||||
|  |  | ||||||
| @@ -612,16 +824,14 @@ In daily use, I prefer to use servers with 1Gbps bandwidth, at least the speed o | |||||||
| | 適用シナリオ | 迅速テストに適し、計算性能のみテスト | 総合的で全面的なテストに適用 | | | 適用シナリオ | 迅速テストに適し、計算性能のみテスト | 総合的で全面的なテストに適用 | | ||||||
| | ランキング | [sysbench.spiritlhl.net](https://sysbench.spiritlhl.net/) | [browser.geekbench.com](https://browser.geekbench.com/) | | | ランキング | [sysbench.spiritlhl.net](https://sysbench.spiritlhl.net/) | [browser.geekbench.com](https://browser.geekbench.com/) | | ||||||
|  |  | ||||||
| デフォルトで`Sysbench`でテストを行い、基準は大まかに以下の通りです: | `Sysbench`の基準は[CPU Performance Ladder For Sysbench](https://sysbench.spiritlhl.net/)階層図で確認可能、具体的なスコアは、テストに使用する Sysbench のバージョンに依存しません。デフォルトで`Sysbench`でテストを行い、基準は大まかに以下の通りです: | ||||||
|  |  | ||||||
| CPUテストシングルコア`Sysbench`スコア5000以上は第一階層、4000-5000点は第二階層、1000点毎に大体一階層と考えられます。 | CPUテストのシングルコア「Sysbench」スコアが5000以上の場合、第一ランクに属し高性能と見なされます。おおよそ1000ポイントごとに一段階と考えられます。 | ||||||
|  |  | ||||||
| AMD 7950xシングルコアフル性能スコアは6500前後、AMD 5950xシングルコアフル性能スコアは5700前後、Intel普通のCPU(E5系など)は1000~800前後、500以下のシングルコアCPUは性能が比較的劣ると言えます。 | AMD 7950xシングルコアフル性能スコアは6500前後、AMD 5950xシングルコアフル性能スコアは5700前後、Intel普通のCPU(E5系など)は1000~800前後、500以下のシングルコアCPUは性能が比較的劣ると言えます。 | ||||||
|  |  | ||||||
| 時々マルチコアスコアとシングルコアスコアが同じになることがあり、これは業者がプログラムの並行CPU使用を制限していることを証明します。典型例はTencent Cloudです。 | 時々マルチコアスコアとシングルコアスコアが同じになることがあり、これは業者がプログラムの並行CPU使用を制限していることを証明します。典型例はTencent Cloudです。 | ||||||
|  |  | ||||||
| `Sysbench`の基準は[CPU Performance Ladder For Sysbench](https://sysbench.spiritlhl.net/)階層図で確認可能、具体的なスコアはテストしたsysbenchのバージョンに依存しません。 |  | ||||||
|  |  | ||||||
| `GeekBench`の基準は[公式サイト](https://browser.geekbench.com/processor-benchmarks/)階層図で確認可能、具体的なスコアは各`GeekBench`バージョンで異なり、使用時にテストした`GeekBench`バージョンに注意してください。 | `GeekBench`の基準は[公式サイト](https://browser.geekbench.com/processor-benchmarks/)階層図で確認可能、具体的なスコアは各`GeekBench`バージョンで異なり、使用時にテストした`GeekBench`バージョンに注意してください。 | ||||||
|  |  | ||||||
| もう一つ付け加えると、`GeekBench`はテストする多くの内容が実際のサーバー使用過程では全く使われないため、テストは参考のみです。もちろん`Sysbench`は非常に不完全ですが、最も基本的な計算性能に基づいてCPUの性能を大まかに比較できます。 | もう一つ付け加えると、`GeekBench`はテストする多くの内容が実際のサーバー使用過程では全く使われないため、テストは参考のみです。もちろん`Sysbench`は非常に不完全ですが、最も基本的な計算性能に基づいてCPUの性能を大まかに比較できます。 | ||||||
| @@ -633,6 +843,7 @@ AMD 7950xシングルコアフル性能スコアは6500前後、AMD 5950xシン | |||||||
| 依存プロジェクト:[https://github.com/oneclickvirt/memorytest](https://github.com/oneclickvirt/memorytest) | 依存プロジェクト:[https://github.com/oneclickvirt/memorytest](https://github.com/oneclickvirt/memorytest) | ||||||
|  |  | ||||||
| 一般的に、IO速度が`10240 MB/s (≈10 GB/s)`を下回るかどうかを判断するだけで十分です。 | 一般的に、IO速度が`10240 MB/s (≈10 GB/s)`を下回るかどうかを判断するだけで十分です。 | ||||||
|  |  | ||||||
| この値を下回る場合、メモリ性能が不良で、オーバーセリング問題が存在する可能性が極めて高いことを証明します。 | この値を下回る場合、メモリ性能が不良で、オーバーセリング問題が存在する可能性が極めて高いことを証明します。 | ||||||
|  |  | ||||||
| オーバーセリングの原因は以下が考えられます: | オーバーセリングの原因は以下が考えられます: | ||||||
| @@ -656,6 +867,14 @@ AMD 7950xシングルコアフル性能スコアは6500前後、AMD 5950xシン | |||||||
| * **20 ~ 40 GB/s (20480 ~ 40960 MB/s)** → 高確率でDDR4 | * **20 ~ 40 GB/s (20480 ~ 40960 MB/s)** → 高確率でDDR4 | ||||||
| * **≈ 50 GB/s (≈ 51200 MB/s)** → 基本的にDDR5 | * **≈ 50 GB/s (≈ 51200 MB/s)** → 基本的にDDR5 | ||||||
|  |  | ||||||
|  | | パラメータ方法 | テスト精度 | テスト速度 | アーキテクチャ対応 | 依存関係 | | ||||||
|  | |----------|------------|----------|----------|----------| | ||||||
|  | | stream | 高 — 結果が安定し、実際の状況により適合 | 高速 | クロスプラットフォーム(Linux/Windows/Unix) | 内蔵依存関係、追加インストール不要 | | ||||||
|  | | sysbench | 高 — 結果が信頼性高い | 中程度 | クロスプラットフォーム(Linux、Windows部分対応) | 環境への追加インストールが必要 | | ||||||
|  | | winsat | 中程度やや高 — Windows内蔵ツール | 中程度 | Windows限定 | 物理マシンに内蔵、仮想マシンでは利用不可 | | ||||||
|  | | mbw | 中程度 — 結果がキャッシュ/スケジューリングの影響を受ける可能性 | 非常に高速 | クロスプラットフォーム(ほぼ全てのUnix系システム) | 内蔵依存関係、追加インストール不要 | | ||||||
|  | | dd | 低 — 結果がキャッシュの影響を受ける | 高速 | クロスプラットフォーム(ほぼ全てのUnix系システム) | 内蔵依存関係、追加インストール不要 | | ||||||
|  |  | ||||||
| ### ディスクテスト | ### ディスクテスト | ||||||
|  |  | ||||||
| 依存プロジェクト:[https://github.com/oneclickvirt/disktest](https://github.com/oneclickvirt/disktest) | 依存プロジェクト:[https://github.com/oneclickvirt/disktest](https://github.com/oneclickvirt/disktest) | ||||||
| @@ -706,7 +925,9 @@ NVMe SSDの1M (IOPS)値 < 1GB/s の場合、深刻なリソースオーバーセ | |||||||
|  |  | ||||||
| デフォルトでは国境を越えるストリーミングメディアのロック解除のみをチェックします。 | デフォルトでは国境を越えるストリーミングメディアのロック解除のみをチェックします。 | ||||||
|  |  | ||||||
| 一般的に、正常な状況下では、一つのIPの複数のストリーミングメディアのロック解除地域はすべて一致し、あちこち飛び回ることはありません。複数のプラットフォームでロック解除地域が一致しない場合、IPはIPXOなどのプラットフォームからのレンタルか、最近宣告され使用されたもので、ストリーミングメディアの一般的なデータベースに認識修正されていない可能性が高いです。各プラットフォームのIPデータベース認識速度が一致しないため、時々あるプラットフォームではロック解除地域が正常、あるプラットフォームではルート上のある位置に飛ぶ、あるプラットフォームではIPがあなたによって使用される前にいた位置に飛ぶことがあります。 | 一般的に、正常な状況下では、一つのIPの複数のストリーミングメディアのロック解除地域はすべて一致し、あちこち飛び回ることはありません。複数のプラットフォームでロック解除地域が一致しない場合、IPはIPXOなどのプラットフォームからのレンタルか、最近宣告され使用されたもので、ストリーミングメディアの一般的なデータベースに認識修正されていない可能性が高いです。 | ||||||
|  |  | ||||||
|  | 各プラットフォームのIPデータベース認識速度が一致しないため、時々あるプラットフォームではロック解除地域が正常、あるプラットフォームではルート上のある位置に飛ぶ、あるプラットフォームではIPがあなたによって使用される前にいた位置に飛ぶことがあります。 | ||||||
|  |  | ||||||
| | DNS タイプ | ロック解除方式判断の必要性 | DNSのロック解除への影響 | 説明 | | | DNS タイプ | ロック解除方式判断の必要性 | DNSのロック解除への影響 | 説明 | | ||||||
| | --------- | ------------------------- | ---------------------- | ---- | | | --------- | ------------------------- | ---------------------- | ---- | | ||||||
| @@ -715,22 +936,118 @@ NVMe SSDの1M (IOPS)値 < 1GB/s の場合、深刻なリソースオーバーセ | |||||||
|  |  | ||||||
| そのため、テスト過程で、ホストが現在使用しているのが公式主流のDNSの場合、ネイティブロック解除かどうかの判断は行われません。 | そのため、テスト過程で、ホストが現在使用しているのが公式主流のDNSの場合、ネイティブロック解除かどうかの判断は行われません。 | ||||||
|  |  | ||||||
|  | IP品質によるアクセス制限に敏感なのは、実際には主要なAIプラットフォームやローカルストリーミングサービス、redditやspotifyなどであり、その他の多国籍プラットフォームは一般的にIP品質の影響を受けにくい。 | ||||||
|  |  | ||||||
| ### IP品質検出 | ### IP品質検出 | ||||||
|  |  | ||||||
| 依存プロジェクト:[https://github.com/oneclickvirt/securityCheck](https://github.com/oneclickvirt/securityCheck) | 依存プロジェクト:[https://github.com/oneclickvirt/securityCheck](https://github.com/oneclickvirt/securityCheck) | ||||||
|  |  | ||||||
| 14のデータベースのIP関連情報を検出します。一般的に、使用タイプと会社タイプ、そしてセキュリティ情報のその他識別を見れば十分で、セキュリティスコアは本当にお遊びです。複数のプラットフォームで対応する検出項目がすべて対応する値になっている場合、現在のIPが確実にそうであることを証明します。一つのデータベースソースの情報のみを信じてはいけません。 | 18個のデータベースのIP関連情報を検出し、複数のプラットフォームで対応する検出項目がすべて対応する値である場合、現在のIPが確かにそうであることを証明します。1つのデータベースソースの情報のみを信じないでください: | ||||||
|  |  | ||||||
| * **使用タイプ & 会社タイプ**: IP帰属と使用シナリオを表示し、例えば家庭ユーザー、企業オフィス、ホスティングサービス、またはクラウド/データセンターに属するかどうか。 | [ipinfo.io](https://ipinfo.io) [scamalytics.com](https://scamalytics.com) [abuseipdb.com](https://www.abuseipdb.com/) [ip2location.com](https://ip2location.com/) [ip-api.com](https://ip-api.com) [ipregistry.co](https://ipregistry.co/) [ipdata.co](https://ipdata.co/) [ipgeolocation.io](https://ipgeolocation.io) [ipwhois.io](https://ipwhois.io) [ipapi.com](https://ipapi.com/) [ipapi.is](https://ipapi.is/) [ipqualityscore.com](https://www.ipqualityscore.com/) [bigdatacloud.com](https://www.bigdatacloud.com/) [dkly.net](https://data.dkly.net) [virustotal.com](https://www.virustotal.com/) [ipfighter.com](https://ipfighter.com/) [getipintel.net](http://check.getipintel.net/) [fraudlogix.com](https://fraudlogix.com) | ||||||
| * **クラウドプロバイダー / データセンター / モバイルデバイス**: IPがクラウドサービス、データセンター、またはモバイルネットワークから来ているかを判断し、共有または高リスクIPの識別に役立つ。 |  | ||||||
| * **プロキシ / VPN / Tor / Tor出口**: IPが真の身元や位置を隠すために使用されているかを検出し、匿名アクセスや悪用行為に関与している可能性がある。 |  | ||||||
| * **ネットワーククローラー / ロボット**: 自動化されたアクセスまたは収集プログラムを識別し、セキュリティリスク評価に参考価値がある。 |  | ||||||
| * **匿名 / 悪用者 / 脅威 / 中継 / Bogon**: IP履歴行動特徴と予約/未割り当てIPに属するかどうかを表示し、IP信頼度判断を補助。 |  | ||||||
| * **セキュリティスコア、評判、信頼スコア、脅威スコア、詐欺スコア、悪用スコア**: 各データベースのIPに対する定量化されたセキュリティ評価、参考のみ。 |  | ||||||
| * **コミュニティ投票 & ブラックリスト記録**: ユーザーフィードバックと公共ブラックリスト情報を展示し、潜在的リスクを迅速に識別可能。 |  | ||||||
| * **Google検索実行可能性**: IPがGoogle検索サービスにアクセスする実行可能性を検出し、ネットワーク制限やブロック状況を間接的に反映。 |  | ||||||
|  |  | ||||||
| マルチプラットフォーム比較がより信頼性が高く、異なるデータベースのアルゴリズムと更新頻度が異なるため、単一ソースは誤判断の可能性があります。複数のデータベースが類似の結果を示す場合、その結果はより信頼性が高いことを説明します。 | 以下は各フィールドの対応する意味です | ||||||
|  |  | ||||||
|  | | フィールドカテゴリ | フィールド名 | フィールド説明 | 可能な値 | スコアリングルール | | ||||||
|  | |---------|---------|---------|---------|---------| | ||||||
|  | | セキュリティスコア | レピュテーション(Reputation) | セキュリティコミュニティにおけるIPアドレスの評判スコア | 0-100の数値 | 高いほど良い | | ||||||
|  | | | トラストスコア(Trust Score) | IPアドレスの信頼度スコア | 0-100の数値 | 高いほど良い | | ||||||
|  | | | VPNスコア(VPN Score) | IPがVPNとして識別される可能性のスコア | 0-100の数値 | 低いほど良い | | ||||||
|  | | | プロキシスコア(Proxy Score) | IPがプロキシとして識別される可能性のスコア | 0-100の数値 | 低いほど良い | | ||||||
|  | | | コミュニティ投票-無害 | コミュニティメンバーがこのIPを無害と投票したスコア | 非負整数 | 高いほど良い | | ||||||
|  | | | コミュニティ投票-悪意 | コミュニティメンバーがこのIPを悪意があると投票したスコア | 非負整数 | 低いほど良い | | ||||||
|  | | | 脅威スコア(Threat Score) | IPアドレスの全体的な脅威レベルスコア | 0-100の数値 | 低いほど良い | | ||||||
|  | | | 詐欺スコア(Fraud Score) | IPアドレスが詐欺行為に関与する可能性のスコア | 0-100の数値 | 低いほど良い | | ||||||
|  | | | 不正使用スコア(Abuse Score) | IPアドレスの不正使用行為が報告されたスコア | 0-100の数値 | 低いほど良い | | ||||||
|  | | | ASN不正使用スコア | このIPが属するASN(自律システム)の不正使用スコア | 0-1の小数、リスクレベル表記付き(Low/Medium/High)の場合あり | 低いほど良い | | ||||||
|  | | | 企業不正使用スコア | このIPが属する企業の不正使用スコア | 0-1の小数、リスクレベル表記付き(Low/Medium/High)の場合あり | 低いほど良い | | ||||||
|  | | | 脅威レベル(Threat Level) | IPアドレスの脅威レベル分類 | low/medium/high/criticalなどのテキスト記述 | lowが最良 | | ||||||
|  | | ブラックリスト記録 | 無害記録数(Harmless) | 各ブラックリストデータベースで無害とマークされた回数 | 非負整数 | 数値自体に良し悪しなし | | ||||||
|  | | | 悪意記録数(Malicious) | 各ブラックリストデータベースで悪意があるとマークされた回数 | 非負整数 | 低いほど良い | | ||||||
|  | | | 疑わしい記録数(Suspicious) | 各ブラックリストデータベースで疑わしいとマークされた回数 | 非負整数 | 低いほど良い | | ||||||
|  | | | 未検出数(Undetected) | 各ブラックリストデータベースで記録がない回数 | 非負整数 | 数値自体に良し悪しなし | | ||||||
|  | | | DNSブラックリスト-総チェック数 | チェックしたDNSブラックリストデータベースの総数 | 正整数 | 数値自体に良し悪しなし | | ||||||
|  | | | DNSブラックリスト-クリーン | DNSブラックリストでクリーン(未掲載)として表示された数 | 非負整数 | 高いほど良い | | ||||||
|  | | | DNSブラックリスト-掲載済み | DNSブラックリストに既に掲載されている数 | 非負整数 | 低いほど良い | | ||||||
|  | | | DNSブラックリスト-その他 | DNSブラックリストチェックで他のステータスを返した数 | 非負整数 | 数値自体に良し悪しなし | | ||||||
|  |  | ||||||
|  | 一般的に以下の使用タイプ、会社タイプ、そしてセキュリティ情報の判別で十分です。上記のセキュリティスコアは複数のデータベースで一致が確認された場合のみ信頼できるため、見なくても特に問題ありません。(IDC: サーバーを購入する際、一般的にこの識別されることが多い。データセンターのサーバールームでブロードキャストに使用される通常のタイプである) | ||||||
|  |  | ||||||
|  | | 使用タイプ        | 説明         | | ||||||
|  | | ----------- | ---------- | | ||||||
|  | | hosting     | ホスト/サーバー用途(IDC)    | | ||||||
|  | | residential | 家庭/住宅ネットワーク(家庭用回線)    | | ||||||
|  | | FixedLineISP、ISP | 固定回線インターネットサービスプロバイダー(家庭用回線) | | ||||||
|  | | business    | 企業オフィスネットワーク(ビジネス回線)      | | ||||||
|  | | cellular    | モバイル通信事業者ネットワーク(家庭用回線)    | | ||||||
|  | | education   | 教育機関ネットワーク(教育ネットワーク)     | | ||||||
|  | | government  | 政府機関ネットワーク(政府ネットワーク)     | | ||||||
|  | | military    | 軍事ネットワーク(政府ネットワーク)       | | ||||||
|  | | DataCenter  | データセンターネットワーク(IDC)      | | ||||||
|  | | WebHosting  | Webホスティングサービス(IDC)      | | ||||||
|  | | Transit     | インターネット中継/転送ネットワーク(IDC)  | | ||||||
|  | | CDN         | コンテンツ配信ネットワーク(IDC)      | | ||||||
|  |  | ||||||
|  | | 会社タイプ         | 説明           | | ||||||
|  | | ------------ | ------------ | | ||||||
|  | | business     | 企業会社(ビジネス回線)         | | ||||||
|  | | hosting      | ホスト/データセンター会社(IDC)    | | ||||||
|  | | FixedLineISP、ISP | 固定回線インターネットサービスプロバイダー(家庭用回線) | | ||||||
|  | | education    | 教育機関(教育ネットワーク)         | | ||||||
|  | | government   | 政府機関(政府ネットワーク)         | | ||||||
|  |  | ||||||
|  | その他のセキュリティ情報フィールド: | ||||||
|  |  | ||||||
|  | | フィールドカテゴリ | フィールド名 | フィールド説明 | 可能な値 | 評価ルール | | ||||||
|  | |---------|---------|---------|---------|---------| | ||||||
|  | | クラウドプロバイダー | クラウドプロバイダーかどうか(Cloud Provider) | このIPがクラウドサービスプロバイダーに属しているか | Yes/No | 良し悪しはなく、識別のみ | | ||||||
|  | | データセンター | データセンターかどうか(Data Center) | このIPがデータセンターに位置しているか | Yes/No | アンブロックを重視する場合はNoが最適 | | ||||||
|  | | モバイルデバイス | モバイルデバイスかどうか(Mobile) | このIPがモバイルデバイスネットワークからのものか | Yes/No | アンブロックを重視する場合はYesが最適 | | ||||||
|  | | プロキシ | プロキシかどうか(Proxy) | このIPがプロキシサーバーか | Yes/No | Noが望ましい | | ||||||
|  | | VPN | VPNかどうか | このIPがVPNサービスノードか | Yes/No | Noが望ましい | | ||||||
|  | | Tor出口 | TorExitかどうか(Tor Exit Node) | このIPがTorネットワークの出口ノードか | Yes/No | Noが望ましい | | ||||||
|  | | Webクローラー | Webクローラーかどうか(Crawler) | このIPがWebクローラーとして識別されているか | Yes/No | Noが望ましい | | ||||||
|  | | 匿名 | 匿名かどうか(Anonymous) | このIPが匿名サービス(VPN/Proxy/Torなど)を提供しているか | Yes/No | Noが望ましい | | ||||||
|  | | 攻撃者 | 攻撃者かどうか(Attacker) | このIPが攻撃元(DDOSなど)として識別されているか | Yes/No | Noが望ましい | | ||||||
|  | | 悪用者 | 悪用者かどうか(Abuser) | このIPに能動的な悪用行為の記録があるか | Yes/No | Noが望ましい | | ||||||
|  | | 脅威 | 脅威かどうか(Threat) | このIPが脅威元としてマークされているか | Yes/No | Noが望ましい | | ||||||
|  | | 中継 | 中継かどうか(Relay) | このIPが中継ノードか | Yes/No | Noが望ましい | | ||||||
|  | | Bogon | Bogonかどうか(Bogon IP) | このIPが偽造/未割り当てのIPアドレスか | Yes/No | Noが望ましい | | ||||||
|  | | ボット | ボットかどうか(Bot) | このIPがボットトラフィックとして識別されているか | Yes/No | Noが望ましい | | ||||||
|  | | 検索エンジン | Google検索の実行可能性 | このIPでGoogle検索サービスが正常に使用できるか | YES/NO | YESが正常 | | ||||||
|  |  | ||||||
|  | マルチプラットフォーム比較の方が信頼性が高い。異なるデータベースはアルゴリズムと更新頻度が異なるため、単一のソースには誤判定が存在する可能性がある。複数のデータベースが類似した結果を示す場合、その結果はより信頼性が高いことを示している。 | ||||||
|  |  | ||||||
|  | AbuserまたはAbuseスコアは、マシンの正常な使用に直接影響する。 | ||||||
|  |  | ||||||
|  | Abuse記録が存在し、スコアが高い場合、そのIPが過去に以下の行為に関与していた可能性があることを示している: | ||||||
|  | - DDoS攻撃に使用された | ||||||
|  | - 大規模なフラッド攻撃を開始した | ||||||
|  | - ポートスキャンまたはネットワーク全体のスキャンを実施した | ||||||
|  |  | ||||||
|  | このような履歴記録は報告され、Abuseデータベースに登録される。引き継いだIPが他人によって悪用されたばかりの場合、遅延したAbuse警告メールがサービスプロバイダに送信される可能性がある。サービスプロバイダは、あなた本人が悪意のある行為を行っていると誤判定し、マシンを解約する可能性があり、ほとんどの場合、返金は行われない。国境を越えたストリーミングサービスの場合、AbuseスコアはそのIPに対するプラットフォームの信頼評価にも影響を与える可能性がある。 | ||||||
|  |  | ||||||
|  | ストリーミング解除要件のために住宅ブロードバンドが必要なユーザー(Eコマース需要など)は、「使用タイプ」と「会社タイプ」の両方がISPとして識別されているかどうかに注意を払う必要がある。単一ISPのみ、または非ISPとして識別されている場合、その後のデータベース更新後、IPタイプがHostingに修正される可能性が高く、解除効果に影響を与える。 | ||||||
|  |  | ||||||
|  | ほとんどのIP識別データベースは月次で更新される。更新後、IP属性が変更され、ISP → Hostingという状況が発生する可能性がある。特定の国のストリーミングサービス(NetflixやSpotifyなど)や、異なる国を区別して扱うストリーミングサービス(TikTokなど)など、一部の敏感なプラットフォームでは、非住宅での解除の可能性は低いが、不可能ではない。安定した解除が必要で、その特別な機能解除を追求する場合にのみ、住宅ブロードバンドストリーミング解除を追求する必要がある。単にブラウジングや視聴するだけであれば、多くの場合、住宅ブロードバンドを追求する必要はない。 | ||||||
|  |  | ||||||
|  | IPタイプの分類について詳しく説明する必要がある | ||||||
|  |  | ||||||
|  | 住宅ブロードバンドIP | ||||||
|  | - 帰属地と放送地が一致し、放送主体は地元の通信事業者のAS | ||||||
|  | - 国際帯域回線を通じて放送される必要があり、住宅ブロードバンド属性として認識される | ||||||
|  |  | ||||||
|  | ネイティブIP | ||||||
|  | - 帰属地と保有者が一致しているが、放送主体は地元の通信事業者ではない | ||||||
|  | - データセンターが独自のAS番号を使用して放送することが一般的。住宅ブロードバンドIPを取得しても、一定期間後に属性はネイティブに変更される | ||||||
|  |  | ||||||
|  | 放送IP | ||||||
|  | - 場所AのASからIPを場所Bに放送して使用 | ||||||
|  | - 放送の伝播には時間がかかり、通常1週間から1ヶ月 | ||||||
|  | - 主要な通信事業者の帰属地データベースの更新には1ヶ月から数ヶ月かかる場合がある | ||||||
|  | - 地元のマシンルームが放送を行う場合、住宅ブロードバンドIPはネイティブまたは放送属性に修正される可能性がある | ||||||
|  |  | ||||||
|  | ここまで述べたので、真の住宅ブロードバンドである場合、ターゲットサイトにアクセスする際、必ず日本に迂回してからターゲットサイトに到達することはないことを明記する必要がある。真の海外家庭用ブロードバンドは、必ず近隣で出国し、近隣で着地する。 | ||||||
|  |  | ||||||
| ### メールポート検出 | ### メールポート検出 | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										9
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								go.mod
									
									
									
									
									
								
							| @@ -5,18 +5,18 @@ go 1.24.5 | |||||||
| require ( | require ( | ||||||
| 	github.com/imroc/req/v3 v3.54.0 | 	github.com/imroc/req/v3 v3.54.0 | ||||||
| 	github.com/oneclickvirt/CommonMediaTests v0.0.4-20250329123841 | 	github.com/oneclickvirt/CommonMediaTests v0.0.4-20250329123841 | ||||||
| 	github.com/oneclickvirt/UnlockTests v0.0.28-20250727155204 | 	github.com/oneclickvirt/UnlockTests v0.0.28-20250924054500 | ||||||
| 	github.com/oneclickvirt/backtrace v0.0.7-20250811023541 | 	github.com/oneclickvirt/backtrace v0.0.7-20250811023541 | ||||||
| 	github.com/oneclickvirt/basics v0.0.15-20250812130523 | 	github.com/oneclickvirt/basics v0.0.15-20250812130523 | ||||||
| 	github.com/oneclickvirt/cputest v0.0.12-20250720122317 | 	github.com/oneclickvirt/cputest v0.0.12-20250720122317 | ||||||
| 	github.com/oneclickvirt/defaultset v0.0.2-20240624082446 | 	github.com/oneclickvirt/defaultset v0.0.2-20240624082446 | ||||||
| 	github.com/oneclickvirt/disktest v0.0.10-20250808140407 | 	github.com/oneclickvirt/disktest v0.0.10-20250924030424 | ||||||
| 	github.com/oneclickvirt/gostun v0.0.5-20250727155022 | 	github.com/oneclickvirt/gostun v0.0.5-20250727155022 | ||||||
| 	github.com/oneclickvirt/memorytest v0.0.9-20250808065154 | 	github.com/oneclickvirt/memorytest v0.0.10-20250924154648 | ||||||
| 	github.com/oneclickvirt/nt3 v0.0.8-20250811123903 | 	github.com/oneclickvirt/nt3 v0.0.8-20250811123903 | ||||||
| 	github.com/oneclickvirt/pingtest v0.0.8-20250728015259 | 	github.com/oneclickvirt/pingtest v0.0.8-20250728015259 | ||||||
| 	github.com/oneclickvirt/portchecker v0.0.3-20250728015900 | 	github.com/oneclickvirt/portchecker v0.0.3-20250728015900 | ||||||
| 	github.com/oneclickvirt/security v0.0.6-20250823030124 | 	github.com/oneclickvirt/security v0.0.6-20251028123803 | ||||||
| 	github.com/oneclickvirt/speedtest v0.0.10-20250728015734 | 	github.com/oneclickvirt/speedtest v0.0.10-20250728015734 | ||||||
| ) | ) | ||||||
|  |  | ||||||
| @@ -61,6 +61,7 @@ require ( | |||||||
| 	github.com/oneclickvirt/dd v0.0.2-20250808062818 // indirect | 	github.com/oneclickvirt/dd v0.0.2-20250808062818 // indirect | ||||||
| 	github.com/oneclickvirt/fio v0.0.2-20250808045755 // indirect | 	github.com/oneclickvirt/fio v0.0.2-20250808045755 // indirect | ||||||
| 	github.com/oneclickvirt/mbw v0.0.1-20250808061222 // indirect | 	github.com/oneclickvirt/mbw v0.0.1-20250808061222 // indirect | ||||||
|  | 	github.com/oneclickvirt/stream v0.0.2-20250924154001 // indirect | ||||||
| 	github.com/oschwald/maxminddb-golang v1.13.1 // indirect | 	github.com/oschwald/maxminddb-golang v1.13.1 // indirect | ||||||
| 	github.com/pelletier/go-toml/v2 v2.2.4 // indirect | 	github.com/pelletier/go-toml/v2 v2.2.4 // indirect | ||||||
| 	github.com/pion/dtls/v2 v2.2.7 // indirect | 	github.com/pion/dtls/v2 v2.2.7 // indirect | ||||||
|   | |||||||
							
								
								
									
										18
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								go.sum
									
									
									
									
									
								
							| @@ -96,8 +96,8 @@ github.com/nxtrace/NTrace-core v1.4.2 h1:dSRP18Bn3VGf5CZBzKt8gQWW9mDkq62Np9TCF9R | |||||||
| github.com/nxtrace/NTrace-core v1.4.2/go.mod h1:wIDOlccuYzY3wBqU89pv2KGHT41i3JA0eRqJU/x9eX4= | github.com/nxtrace/NTrace-core v1.4.2/go.mod h1:wIDOlccuYzY3wBqU89pv2KGHT41i3JA0eRqJU/x9eX4= | ||||||
| github.com/oneclickvirt/CommonMediaTests v0.0.4-20250329123841 h1:Zef93z9UiZQwRAKnnZYALmpBKvvuVaq34MEsuWwk6nc= | github.com/oneclickvirt/CommonMediaTests v0.0.4-20250329123841 h1:Zef93z9UiZQwRAKnnZYALmpBKvvuVaq34MEsuWwk6nc= | ||||||
| github.com/oneclickvirt/CommonMediaTests v0.0.4-20250329123841/go.mod h1:DAmFPRjFV5p9fEzUUSml5jJGn2f1NZJQCzTxITHDjc4= | github.com/oneclickvirt/CommonMediaTests v0.0.4-20250329123841/go.mod h1:DAmFPRjFV5p9fEzUUSml5jJGn2f1NZJQCzTxITHDjc4= | ||||||
| github.com/oneclickvirt/UnlockTests v0.0.28-20250727155204 h1:apFaEbHGKflYMZzK17nXzEai4GG873mTd+d9hCO/KdY= | github.com/oneclickvirt/UnlockTests v0.0.28-20250924054500 h1:ERFoRBYhTPWJBYhEVFWr3hm6KtSTUHuWD21jK7DhKZw= | ||||||
| github.com/oneclickvirt/UnlockTests v0.0.28-20250727155204/go.mod h1:oOa6wj/qECtRMxwBO6D7o0L0F0Q/5sQ747OCnFQqoGE= | github.com/oneclickvirt/UnlockTests v0.0.28-20250924054500/go.mod h1:oOa6wj/qECtRMxwBO6D7o0L0F0Q/5sQ747OCnFQqoGE= | ||||||
| github.com/oneclickvirt/backtrace v0.0.7-20250811023541 h1:GzkzvUC6U9b6Dkz/Bl4JRPeQ7XBGoW7Qw1aWqzhF+MQ= | github.com/oneclickvirt/backtrace v0.0.7-20250811023541 h1:GzkzvUC6U9b6Dkz/Bl4JRPeQ7XBGoW7Qw1aWqzhF+MQ= | ||||||
| github.com/oneclickvirt/backtrace v0.0.7-20250811023541/go.mod h1:/+KUtOWz48TyiTTbhVTsp3D6b5WY+4pCgvFBYtUGtns= | github.com/oneclickvirt/backtrace v0.0.7-20250811023541/go.mod h1:/+KUtOWz48TyiTTbhVTsp3D6b5WY+4pCgvFBYtUGtns= | ||||||
| github.com/oneclickvirt/basics v0.0.15-20250812130523 h1:nPNTVq8d9N1rdshkMAbnhZxTb7L2Yt7NlIg6rY10YRQ= | github.com/oneclickvirt/basics v0.0.15-20250812130523 h1:nPNTVq8d9N1rdshkMAbnhZxTb7L2Yt7NlIg6rY10YRQ= | ||||||
| @@ -108,26 +108,28 @@ github.com/oneclickvirt/dd v0.0.2-20250808062818 h1:0KHrKkdpL5oBE1OHsrRd2siRw4/2 | |||||||
| github.com/oneclickvirt/dd v0.0.2-20250808062818/go.mod h1:tImu9sPTkLWo2tf1dEN1xQzrylWKauj9hbU8PHfyAeU= | github.com/oneclickvirt/dd v0.0.2-20250808062818/go.mod h1:tImu9sPTkLWo2tf1dEN1xQzrylWKauj9hbU8PHfyAeU= | ||||||
| github.com/oneclickvirt/defaultset v0.0.2-20240624082446 h1:5Pg3mK/u/vQvSz7anu0nxzrNdELi/AcDAU1mMsmPzyc= | github.com/oneclickvirt/defaultset v0.0.2-20240624082446 h1:5Pg3mK/u/vQvSz7anu0nxzrNdELi/AcDAU1mMsmPzyc= | ||||||
| github.com/oneclickvirt/defaultset v0.0.2-20240624082446/go.mod h1:e9Jt4tf2sbemCtc84/XgKcHy9EZ2jkc5x2sW1NiJS+E= | github.com/oneclickvirt/defaultset v0.0.2-20240624082446/go.mod h1:e9Jt4tf2sbemCtc84/XgKcHy9EZ2jkc5x2sW1NiJS+E= | ||||||
| github.com/oneclickvirt/disktest v0.0.10-20250808140407 h1:oUfi5zF3htUTB1ZJuClmK0o74ufP7icbu8LYCnxEOxE= | github.com/oneclickvirt/disktest v0.0.10-20250924030424 h1:56Aq2xygO/vA/co5vJ7/MQTNijIDl8eYbVk8uCWN4mI= | ||||||
| github.com/oneclickvirt/disktest v0.0.10-20250808140407/go.mod h1:Vp3iMVBD4ccReDJz5n5SlzUdq0kDuVhpRklQk21KT+8= | github.com/oneclickvirt/disktest v0.0.10-20250924030424/go.mod h1:Vp3iMVBD4ccReDJz5n5SlzUdq0kDuVhpRklQk21KT+8= | ||||||
| github.com/oneclickvirt/fio v0.0.2-20250808045755 h1:eWihCRWcalJjPIdrF8dMe68ZiPnMkSfHC8ENvElp/xE= | github.com/oneclickvirt/fio v0.0.2-20250808045755 h1:eWihCRWcalJjPIdrF8dMe68ZiPnMkSfHC8ENvElp/xE= | ||||||
| github.com/oneclickvirt/fio v0.0.2-20250808045755/go.mod h1:NIq+XYTey68KNERGIy/oRDlzpwLzBVoHOCiqX8didsE= | github.com/oneclickvirt/fio v0.0.2-20250808045755/go.mod h1:NIq+XYTey68KNERGIy/oRDlzpwLzBVoHOCiqX8didsE= | ||||||
| github.com/oneclickvirt/gostun v0.0.5-20250727155022 h1:/e3gSUrOp1tg/1NTRx+P8B51OGcP26Q6//5EoSIjOvk= | github.com/oneclickvirt/gostun v0.0.5-20250727155022 h1:/e3gSUrOp1tg/1NTRx+P8B51OGcP26Q6//5EoSIjOvk= | ||||||
| github.com/oneclickvirt/gostun v0.0.5-20250727155022/go.mod h1:pfp7MFZJK9n/KTLAVqqFcCAns4xqMykmjI+1UeF/vdE= | github.com/oneclickvirt/gostun v0.0.5-20250727155022/go.mod h1:pfp7MFZJK9n/KTLAVqqFcCAns4xqMykmjI+1UeF/vdE= | ||||||
| github.com/oneclickvirt/mbw v0.0.1-20250808061222 h1:WGXOe6QvHiDRhPVMI0VcctjzW08kGvJf50yq5YeZCtw= | github.com/oneclickvirt/mbw v0.0.1-20250808061222 h1:WGXOe6QvHiDRhPVMI0VcctjzW08kGvJf50yq5YeZCtw= | ||||||
| github.com/oneclickvirt/mbw v0.0.1-20250808061222/go.mod h1:0Vq6NRpyLmGUdfHfL3uDcFsuZhi7KlG+OCs5ky2757Y= | github.com/oneclickvirt/mbw v0.0.1-20250808061222/go.mod h1:0Vq6NRpyLmGUdfHfL3uDcFsuZhi7KlG+OCs5ky2757Y= | ||||||
| github.com/oneclickvirt/memorytest v0.0.9-20250808065154 h1:mjYOvpFz2mpDU9MNjj66oIDcc2r6+zoW8veP616/+4Q= | github.com/oneclickvirt/memorytest v0.0.10-20250924154648 h1:trk6oZ7xs1eVtr+6oIv5IX8LDVtEMG+E6GVzQ810BtU= | ||||||
| github.com/oneclickvirt/memorytest v0.0.9-20250808065154/go.mod h1:DBxiVZX7mWCe0Fy+qu57ENheLo00sLfjKzvxiICrUtU= | github.com/oneclickvirt/memorytest v0.0.10-20250924154648/go.mod h1:4kiHsEWkW9r3/1ZcV5xIweU0smiKP0IRfQj74AUIiVI= | ||||||
| github.com/oneclickvirt/nt3 v0.0.8-20250811123903 h1:ubSPLh/DSrXj+tOgmRABgi2vrVmbmjjSne+NrVFNmNc= | github.com/oneclickvirt/nt3 v0.0.8-20250811123903 h1:ubSPLh/DSrXj+tOgmRABgi2vrVmbmjjSne+NrVFNmNc= | ||||||
| github.com/oneclickvirt/nt3 v0.0.8-20250811123903/go.mod h1:F1v+6xInBKnbUa8gV1M40R1HOzxg+obtduNhx3CTnmA= | github.com/oneclickvirt/nt3 v0.0.8-20250811123903/go.mod h1:F1v+6xInBKnbUa8gV1M40R1HOzxg+obtduNhx3CTnmA= | ||||||
| github.com/oneclickvirt/pingtest v0.0.8-20250728015259 h1:egoxZRZBOWN3JqBwqEsULDyRo2/dpGMeWcmV3U87zig= | github.com/oneclickvirt/pingtest v0.0.8-20250728015259 h1:egoxZRZBOWN3JqBwqEsULDyRo2/dpGMeWcmV3U87zig= | ||||||
| github.com/oneclickvirt/pingtest v0.0.8-20250728015259/go.mod h1:gxwsxxwitNQiGq2OI0ZogYoOLwc8DtuOdSRe6/EvRqs= | github.com/oneclickvirt/pingtest v0.0.8-20250728015259/go.mod h1:gxwsxxwitNQiGq2OI0ZogYoOLwc8DtuOdSRe6/EvRqs= | ||||||
| github.com/oneclickvirt/portchecker v0.0.3-20250728015900 h1:AomzdppSOFB70AJESQhlp0IPbsHTTJGimAWDk2TzCWM= | github.com/oneclickvirt/portchecker v0.0.3-20250728015900 h1:AomzdppSOFB70AJESQhlp0IPbsHTTJGimAWDk2TzCWM= | ||||||
| github.com/oneclickvirt/portchecker v0.0.3-20250728015900/go.mod h1:9sjMDPCd4Z40wkYB0S9gQPGH8YPtnNE1ZJthVIuHUzA= | github.com/oneclickvirt/portchecker v0.0.3-20250728015900/go.mod h1:9sjMDPCd4Z40wkYB0S9gQPGH8YPtnNE1ZJthVIuHUzA= | ||||||
| github.com/oneclickvirt/security v0.0.6-20250823030124 h1:3RjpJNfKV7anN6GJs0ky2BfXFHPUVrDxUomEqoB0x7I= | github.com/oneclickvirt/security v0.0.6-20251028123803 h1:iOjLqpyzOR2QDrA7ei00upv1uWGEbf1dH4mRa2xlWIg= | ||||||
| github.com/oneclickvirt/security v0.0.6-20250823030124/go.mod h1:RSMooIlb4H/kLrGWNvUyOgdzQKgYKVv+LzWGlsPsLW4= | github.com/oneclickvirt/security v0.0.6-20251028123803/go.mod h1:RSMooIlb4H/kLrGWNvUyOgdzQKgYKVv+LzWGlsPsLW4= | ||||||
| github.com/oneclickvirt/speedtest v0.0.10-20250728015734 h1:HKO7/JQ74ueXA8Wo8NIvcK9DphbEG/YTfAAVz/akSiY= | github.com/oneclickvirt/speedtest v0.0.10-20250728015734 h1:HKO7/JQ74ueXA8Wo8NIvcK9DphbEG/YTfAAVz/akSiY= | ||||||
| github.com/oneclickvirt/speedtest v0.0.10-20250728015734/go.mod h1:0W8vnMbA3iucXLXFdGfe9Ia6RPS0izRO7jvu/SnH1P8= | github.com/oneclickvirt/speedtest v0.0.10-20250728015734/go.mod h1:0W8vnMbA3iucXLXFdGfe9Ia6RPS0izRO7jvu/SnH1P8= | ||||||
|  | github.com/oneclickvirt/stream v0.0.2-20250924154001 h1:GuJWdiPkoK84+y/+oHKr2Ghl3c/MzS9Z5m1nM+lMmy4= | ||||||
|  | github.com/oneclickvirt/stream v0.0.2-20250924154001/go.mod h1:oWaizaHTC2VQciBC9RfaLbAOf8qeR6n20/gY7QxriDE= | ||||||
| github.com/oschwald/maxminddb-golang v1.13.1 h1:G3wwjdN9JmIK2o/ermkHM+98oX5fS+k5MbwsmL4MRQE= | github.com/oschwald/maxminddb-golang v1.13.1 h1:G3wwjdN9JmIK2o/ermkHM+98oX5fS+k5MbwsmL4MRQE= | ||||||
| github.com/oschwald/maxminddb-golang v1.13.1/go.mod h1:K4pgV9N/GcK694KSTmVSDTODk4IsCNThNdTmnaBZ/F8= | github.com/oschwald/maxminddb-golang v1.13.1/go.mod h1:K4pgV9N/GcK694KSTmVSDTODk4IsCNThNdTmnaBZ/F8= | ||||||
| github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4= | github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4= | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								goecs.go
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								goecs.go
									
									
									
									
									
								
							| @@ -39,7 +39,7 @@ import ( | |||||||
| ) | ) | ||||||
|  |  | ||||||
| var ( | var ( | ||||||
| 	ecsVersion                                                        = "v0.1.87" | 	ecsVersion                                                        = "v0.1.90" | ||||||
| 	menuMode                                                          bool | 	menuMode                                                          bool | ||||||
| 	onlyChinaTest                                                     bool | 	onlyChinaTest                                                     bool | ||||||
| 	input, choice                                                     string | 	input, choice                                                     string | ||||||
| @@ -139,7 +139,7 @@ func parseFlags() { | |||||||
| 	goecsFlag.BoolVar(&speedTestStatus, "speed", true, "Enable/Disable speed test") | 	goecsFlag.BoolVar(&speedTestStatus, "speed", true, "Enable/Disable speed test") | ||||||
| 	goecsFlag.StringVar(&cpuTestMethod, "cpum", "sysbench", "Set CPU test method (supported: sysbench, geekbench, winsat)") | 	goecsFlag.StringVar(&cpuTestMethod, "cpum", "sysbench", "Set CPU test method (supported: sysbench, geekbench, winsat)") | ||||||
| 	goecsFlag.StringVar(&cpuTestThreadMode, "cput", "multi", "Set CPU test thread mode (supported: single, multi)") | 	goecsFlag.StringVar(&cpuTestThreadMode, "cput", "multi", "Set CPU test thread mode (supported: single, multi)") | ||||||
| 	goecsFlag.StringVar(&memoryTestMethod, "memorym", "sysbench", "Set memory test method (supported: sysbench, dd, winsat)") | 	goecsFlag.StringVar(&memoryTestMethod, "memorym", "stream", "Set memory test method (supported: stream, sysbench, dd, winsat, auto)") | ||||||
| 	goecsFlag.StringVar(&diskTestMethod, "diskm", "fio", "Set disk test method (supported: fio, dd, winsat)") | 	goecsFlag.StringVar(&diskTestMethod, "diskm", "fio", "Set disk test method (supported: fio, dd, winsat)") | ||||||
| 	goecsFlag.StringVar(&diskTestPath, "diskp", "", "Set disk test path, e.g., -diskp /root") | 	goecsFlag.StringVar(&diskTestPath, "diskp", "", "Set disk test path, e.g., -diskp /root") | ||||||
| 	goecsFlag.BoolVar(&diskMultiCheck, "diskmc", false, "Enable/Disable multiple disk checks, e.g., -diskmc=false") | 	goecsFlag.BoolVar(&diskMultiCheck, "diskmc", false, "Enable/Disable multiple disk checks, e.g., -diskmc=false") | ||||||
|   | |||||||
							
								
								
									
										32
									
								
								goecs.sh
									
									
									
									
									
								
							
							
						
						
									
										32
									
								
								goecs.sh
									
									
									
									
									
								
							| @@ -1,6 +1,6 @@ | |||||||
| #!/bin/sh | #!/bin/sh | ||||||
| # From https://github.com/oneclickvirt/ecs | # From https://github.com/oneclickvirt/ecs | ||||||
| # 2025.08.26 | # 2025.10.08 | ||||||
|  |  | ||||||
| # curl -L https://raw.githubusercontent.com/oneclickvirt/ecs/master/goecs.sh -o goecs.sh && chmod +x goecs.sh | # curl -L https://raw.githubusercontent.com/oneclickvirt/ecs/master/goecs.sh -o goecs.sh && chmod +x goecs.sh | ||||||
| # 或 | # 或 | ||||||
| @@ -152,7 +152,7 @@ goecs_check() { | |||||||
|     os=$(uname -s 2>/dev/null || echo "Unknown") |     os=$(uname -s 2>/dev/null || echo "Unknown") | ||||||
|     arch=$(uname -m 2>/dev/null || echo "Unknown") |     arch=$(uname -m 2>/dev/null || echo "Unknown") | ||||||
|     check_china |     check_china | ||||||
|     ECS_VERSION="0.1.86" |     ECS_VERSION="0.1.89" | ||||||
|     for api in \ |     for api in \ | ||||||
|         "https://api.github.com/repos/oneclickvirt/ecs/releases/latest" \ |         "https://api.github.com/repos/oneclickvirt/ecs/releases/latest" \ | ||||||
|         "https://githubapi.spiritlhl.workers.dev/repos/oneclickvirt/ecs/releases/latest" \ |         "https://githubapi.spiritlhl.workers.dev/repos/oneclickvirt/ecs/releases/latest" \ | ||||||
| @@ -164,8 +164,8 @@ goecs_check() { | |||||||
|         sleep 1 |         sleep 1 | ||||||
|     done |     done | ||||||
|     if [ -z "$ECS_VERSION" ]; then |     if [ -z "$ECS_VERSION" ]; then | ||||||
|         _yellow "Unable to get version info, using default version 0.1.86" |         _yellow "Unable to get version info, using default version 0.1.89" | ||||||
|         ECS_VERSION="0.1.86" |         ECS_VERSION="0.1.89" | ||||||
|     fi |     fi | ||||||
|     version_output="" |     version_output="" | ||||||
|     for cmd_path in "goecs" "./goecs" "/usr/bin/goecs" "/usr/local/bin/goecs"; do |     for cmd_path in "goecs" "./goecs" "/usr/bin/goecs" "/usr/local/bin/goecs"; do | ||||||
| @@ -404,6 +404,15 @@ InstallSysbench() { | |||||||
| } | } | ||||||
|  |  | ||||||
| env_check() { | env_check() { | ||||||
|  |     # 检测是否为 macOS 系统 | ||||||
|  |     if [ "$(uname -s)" = "Darwin" ]; then | ||||||
|  |         _green "Detected macOS system" | ||||||
|  |         _green "macOS has built-in tools, skipping dependency installation" | ||||||
|  |         _green "Environment preparation complete." | ||||||
|  |         _green "Next command is: ./goecs.sh install" | ||||||
|  |         return 0 | ||||||
|  |     fi | ||||||
|  |      | ||||||
|     if [ -f /etc/opencloudos-release ]; then |     if [ -f /etc/opencloudos-release ]; then | ||||||
|         SYS="opencloudos" |         SYS="opencloudos" | ||||||
|     elif [ -s /etc/os-release ]; then |     elif [ -s /etc/os-release ]; then | ||||||
| @@ -583,16 +592,9 @@ env_check() { | |||||||
|         _green "Installing ping" |         _green "Installing ping" | ||||||
|         ${INSTALL_CMD} iputils-ping >/dev/null 2>&1 || ${INSTALL_CMD} ping >/dev/null 2>&1 |         ${INSTALL_CMD} iputils-ping >/dev/null 2>&1 || ${INSTALL_CMD} ping >/dev/null 2>&1 | ||||||
|     fi |     fi | ||||||
|     if [ "$(uname -s)" = "Darwin" ]; then |     if ! grep -q "^net.ipv4.ping_group_range = 0 2147483647$" /etc/sysctl.conf 2>/dev/null; then | ||||||
|         echo "Detected MacOS, installing sysbench iproute2mac..." |         echo "net.ipv4.ping_group_range = 0 2147483647" >> /etc/sysctl.conf 2>/dev/null | ||||||
|         if command -v brew >/dev/null 2>&1; then |         sysctl -p >/dev/null 2>&1 | ||||||
|             brew install --force sysbench iproute2mac |  | ||||||
|         fi |  | ||||||
|     else |  | ||||||
|         if ! grep -q "^net.ipv4.ping_group_range = 0 2147483647$" /etc/sysctl.conf 2>/dev/null; then |  | ||||||
|             echo "net.ipv4.ping_group_range = 0 2147483647" >> /etc/sysctl.conf 2>/dev/null |  | ||||||
|             sysctl -p >/dev/null 2>&1 |  | ||||||
|         fi |  | ||||||
|     fi |     fi | ||||||
|     _green "Environment preparation complete." |     _green "Environment preparation complete." | ||||||
|     _green "Next command is: ./goecs.sh install" |     _green "Next command is: ./goecs.sh install" | ||||||
| @@ -609,6 +611,7 @@ show_help() { | |||||||
| 可用命令: | 可用命令: | ||||||
|  |  | ||||||
| ./goecs.sh env            检查并安装依赖包 | ./goecs.sh env            检查并安装依赖包 | ||||||
|  |                           注意: macOS系统会自动跳过依赖安装 | ||||||
|                           警告: 此命令会执行系统更新(可选择),可能: |                           警告: 此命令会执行系统更新(可选择),可能: | ||||||
|                           1. 耗时较长 |                           1. 耗时较长 | ||||||
|                           2. 导致网络短暂中断 |                           2. 导致网络短暂中断 | ||||||
| @@ -636,6 +639,7 @@ show_help() { | |||||||
| Available commands: | Available commands: | ||||||
|  |  | ||||||
| ./goecs.sh env             Check and Install dependencies | ./goecs.sh env             Check and Install dependencies | ||||||
|  |                            Note: macOS systems will skip dependency installation | ||||||
|                            Warning: This command performs system update(optional), which may: |                            Warning: This command performs system update(optional), which may: | ||||||
|                            1. Take considerable time |                            1. Take considerable time | ||||||
|                            2. Cause temporary network interruptions |                            2. Cause temporary network interruptions | ||||||
|   | |||||||
| @@ -8,27 +8,78 @@ import ( | |||||||
| ) | ) | ||||||
|  |  | ||||||
| func MemoryTest(language, testMethod string) (realTestMethod, res string) { | func MemoryTest(language, testMethod string) (realTestMethod, res string) { | ||||||
|  | 	testMethod = strings.ToLower(testMethod) | ||||||
|  | 	if testMethod == "" { | ||||||
|  | 		testMethod = "auto" | ||||||
|  | 	} | ||||||
| 	if runtime.GOOS == "windows" { | 	if runtime.GOOS == "windows" { | ||||||
| 		if testMethod != "winsat" && testMethod != "" { | 		switch testMethod { | ||||||
|  | 		case "stream": | ||||||
|  | 			res = memory.WinsatTest(language) | ||||||
|  | 			realTestMethod = "winsat" | ||||||
|  | 		case "dd": | ||||||
|  | 			res = memory.WindowsDDTest(language) | ||||||
|  | 			if res == "" || strings.TrimSpace(res) == "" { | ||||||
|  | 				res += memory.WinsatTest(language) | ||||||
|  | 				realTestMethod = "winsat" | ||||||
|  | 			} else { | ||||||
|  | 				realTestMethod = "dd" | ||||||
|  | 			} | ||||||
|  | 		case "sysbench": | ||||||
|  | 			res = memory.WinsatTest(language) | ||||||
|  | 			realTestMethod = "winsat" | ||||||
|  | 		case "auto", "winsat": | ||||||
|  | 			res = memory.WinsatTest(language) | ||||||
|  | 			realTestMethod = "winsat" | ||||||
|  | 		default: | ||||||
|  | 			res = memory.WinsatTest(language) | ||||||
| 			realTestMethod = "winsat" | 			realTestMethod = "winsat" | ||||||
| 		} | 		} | ||||||
| 		res += memory.WinsatTest(language) |  | ||||||
| 	} else { | 	} else { | ||||||
| 		switch testMethod { | 		switch testMethod { | ||||||
|  | 		case "stream": | ||||||
|  | 			res = memory.StreamTest(language) | ||||||
|  | 			if res == "" || strings.TrimSpace(res) == "" { | ||||||
|  | 				res += memory.DDTest(language) | ||||||
|  | 				realTestMethod = "dd" | ||||||
|  | 			} else { | ||||||
|  | 				realTestMethod = "stream" | ||||||
|  | 			} | ||||||
|  | 		case "dd": | ||||||
|  | 			res = memory.DDTest(language) | ||||||
|  | 			realTestMethod = "dd" | ||||||
| 		case "sysbench": | 		case "sysbench": | ||||||
| 			res = memory.SysBenchTest(language) | 			res = memory.SysBenchTest(language) | ||||||
| 			if res == "" { | 			if res == "" || strings.TrimSpace(res) == "" { | ||||||
| 				res += memory.DDTest(language) | 				res += memory.DDTest(language) | ||||||
| 				realTestMethod = "dd" | 				realTestMethod = "dd" | ||||||
| 			} else { | 			} else { | ||||||
| 				realTestMethod = "sysbench" | 				realTestMethod = "sysbench" | ||||||
| 			} | 			} | ||||||
| 		case "dd": | 		case "auto": | ||||||
|  | 			res = memory.StreamTest(language) | ||||||
|  | 			if res == "" || strings.TrimSpace(res) == "" { | ||||||
|  | 				res = memory.DDTest(language) | ||||||
|  | 				if res == "" || strings.TrimSpace(res) == "" { | ||||||
|  | 					res = memory.SysBenchTest(language) | ||||||
|  | 					if res == "" || strings.TrimSpace(res) == "" { | ||||||
|  | 						realTestMethod = "" | ||||||
|  | 					} else { | ||||||
|  | 						realTestMethod = "sysbench" | ||||||
|  | 					} | ||||||
|  | 				} else { | ||||||
|  | 					realTestMethod = "dd" | ||||||
|  | 				} | ||||||
|  | 			} else { | ||||||
|  | 				realTestMethod = "stream" | ||||||
|  | 			} | ||||||
|  | 		case "winsat": | ||||||
|  | 			// winsat 仅 Windows 支持,非 Windows fallback 到 dd | ||||||
| 			res = memory.DDTest(language) | 			res = memory.DDTest(language) | ||||||
| 			realTestMethod = "dd" | 			realTestMethod = "dd" | ||||||
| 		default: | 		default: | ||||||
| 			res += memory.DDTest(language) | 			res = "Unsupported test method" | ||||||
| 			realTestMethod = "dd" | 			realTestMethod = "" | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	if !strings.Contains(res, "\n") && res != "" { | 	if !strings.Contains(res, "\n") && res != "" { | ||||||
|   | |||||||
| @@ -6,6 +6,6 @@ import ( | |||||||
| ) | ) | ||||||
|  |  | ||||||
| func Test(t *testing.T) { | func Test(t *testing.T) { | ||||||
| 	_, res := MemoryTest("zh", "sysbench") | 	_, res := MemoryTest("zh", "stream") | ||||||
| 	fmt.Print(res) | 	fmt.Print(res) | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user