如何检测客户端是否正在使用VPN

问题描述

如果没有使用VPN进行连接,某些网站会将您重定向到其他地方或完全阻止您的连接。例如yts.mx(YIFY洪流网站);如果您未连接VPN,则该站点会将您重定向到一个页面,该页面警告您不要使用自己的IP。

我想这意味着该站点知道您是否连接了VPN。告诉我,有一种方法可以知道用户是否通过VPN连接。

解决方法

检测访问者是否在 VPN 背后的 DIY 方法是获取所有 VPN 服务使用的所有 IP 的列表,每天更新它们,因为它们不断变化,然后比较访问者的 IP与该列表。

您可以猜到网站没有这样做,因为它代表了繁重的维护工作量。相反,他们使用专门分析 IP 地址的实时 API,并拥有 VPN 服务使用的 IP 的最新列表。

我的一个网站禁止 VPN 用户访问(因为地理定位很重要),所以我使用抽象 IP 地理定位 API https://www.abstractapi.com/ip-geolocation-api。它包含一个字段,用于指示 IP 是否属于 VPN。

$ curl "https://ipgeolocation.abstractapi.com/v1/?api_key=KEY&ip_address=IP"
...
  "security": {
    "is_vpn": false
  }
...
,

您可以使用每天更新最新代理数据的 IP2Proxy 网络服务。

如果您没有自己的 API 密钥,可以从 https://www.ip2location.com/web-service/ip2proxy 获取,但出于测试目的,您可以使用演示密钥。

my_matrix[j,i]

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...