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);
}
步骤说明
-
导入必要的库:
import 'dart:html'; import 'package:tor_detector_web/tor_detector_web.dart';
-
执行TOR浏览器检测:
final isTor = await TorBrowserDetector.isTorBrowser;
-
输出检测结果:
window.console.log(isTor);
更多关于Flutter网络Tor检测插件tor_detector_web的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于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.'),
),
);
}
}