首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何检测客户端是否正在使用VPN

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

Stack Overflow用户
提问于 2020-08-19 05:33:05
回答 2查看 329关注 0票数 1

一个例子是yts.mx ( YIFY torrenting site);如果你没有连接VPN,这个网站会将你重定向到一个警告不要使用你自己的IP的页面。

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

EN

回答 2

Stack Overflow用户

发布于 2021-02-15 21:32:40

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

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

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

代码语言:javascript
运行
复制
$ curl "https://ipgeolocation.abstractapi.com/v1/?api_key=KEY&ip_address=IP"
...
  "security": {
    "is_vpn": false
  }
...
票数 0
EN

Stack Overflow用户

发布于 2021-02-20 20:15:38

您可以使用IP2Proxy Web服务,它每天都会使用最新的代理数据进行更新。

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

代码语言:javascript
运行
复制
<?php
$json = file_get_contents('http://api.ip2proxy.com/?ip=8.8.8.8&key=demo&package=PX10');
$arr = json_decode($json, true);

if ($arr['response'] == 'OK') {
    if ($arr['proxyType'] == 'VPN') {
        echo "IP address is a VPN.\n";
    }
    else {
        echo "IP address is not a VPN.\n";
    }
}
else {
    echo "Error.\n";
}
?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63476920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档