Flutter网络Tor检测插件tor_detector_web的使用

Flutter网络Tor检测插件tor_detector_web的使用

识别TOR用户并使您的应用程序准备好匿名用户。

协议和免责声明

该插件旨在为TOR用户提供额外的功能,而不是阻止他们访问内容。

您不得以任何方式使用此包来阻止人们使用您的应用程序,限制功能或其他任何形式的降级。

由于TOR浏览器通常试图保持不可检测的状态,因此不能保证当前的测试在未来仍然有效。如果您发现此包中使用的过时测试,请随时报告问题。

特性

  • 整体TOR检查
  • 用户代理测试
  • navigator.plugins 测试
  • 窗口和视口大小测试
  • 时区偏移测试

使用方法

TorBrowserDetector 提供了一些测试,还提供了一个通用的获取器来执行所有测试。

Future<void> main() async {
  final isTor = await TorBrowserDetector.isTorBrowser;
  window.console.log(isTor);
}

贡献

所有的代码都应该格式化正确,并且linter不应该有任何抱怨:

dart format lib test example
dart run import_sorter:main --no-comments
dart analyze

所有的代码都应该有基本的测试。为了能够访问 dart:html 库,请确保您传递 -pfirefox 参数给 dart test 命令:

dart test -pfirefox # -pfirefox 可能会被省略,因为 `dart_test.yaml` 中已经包含它

额外信息

除了上述限制外,该包根据欧盟公共许可证1.2(EUPL-1.2)进行授权,详细信息请参见 LICENSE

完整示例Demo

以下是完整的示例代码,用于演示如何使用 tor_detector_web 插件来检测是否在TOR浏览器中运行的应用程序。

import 'dart:html';

import 'package:tor_detector_web/tor_detector_web.dart';

void main() async {
  // 执行整体TOR浏览器检测
  final isTor = await TorBrowserDetector.isTorBrowser;

  // 输出检测结果
  window.console.log(isTor);
}

步骤说明

  1. 导入必要的库:

    import 'dart:html';
    import 'package:tor_detector_web/tor_detector_web.dart';
    
  2. 执行TOR浏览器检测:

    final isTor = await TorBrowserDetector.isTorBrowser;
    
  3. 输出检测结果:

    window.console.log(isTor);
    

更多关于Flutter网络Tor检测插件tor_detector_web的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter网络Tor检测插件tor_detector_web的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


tor_detector_web 是一个用于检测用户是否通过 Tor 网络访问你的 Flutter Web 应用的插件。它可以帮助你识别用户是否使用了 Tor 浏览器或通过 Tor 网络连接到你的应用。

安装 tor_detector_web

首先,你需要在 pubspec.yaml 文件中添加 tor_detector_web 依赖:

dependencies:
  flutter:
    sdk: flutter
  tor_detector_web: ^1.0.0  # 请使用最新版本

然后运行 flutter pub get 来安装依赖。

使用 tor_detector_web

安装完成后,你可以在你的 Flutter 应用中使用 tor_detector_web 来检测用户是否通过 Tor 网络访问。

import 'package:flutter/material.dart';
import 'package:tor_detector_web/tor_detector_web.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: TorDetectionScreen(),
    );
  }
}

class TorDetectionScreen extends StatefulWidget {
  [@override](/user/override)
  _TorDetectionScreenState createState() => _TorDetectionScreenState();
}

class _TorDetectionScreenState extends State<TorDetectionScreen> {
  bool _isTor = false;

  [@override](/user/override)
  void initState() {
    super.initState();
    _checkTor();
  }

  Future<void> _checkTor() async {
    bool isTor = await TorDetectorWeb.isTor();
    setState(() {
      _isTor = isTor;
    });
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Tor Detector Web'),
      ),
      body: Center(
        child: _isTor
            ? Text('This user is accessing via Tor.')
            : Text('This user is not accessing via Tor.'),
      ),
    );
  }
}
回到顶部