mirror of
https://github.com/wanghongenpin/proxypin.git
synced 2026-05-20 16:15:47 +08:00
新增请求动画效果
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:network_proxy/utils/ip.dart';
|
||||
|
||||
class SystemProxy {
|
||||
/// 设置系统代理
|
||||
static void setSystemProxy(int port, bool enableSsl) async {
|
||||
@@ -18,12 +20,13 @@ class SystemProxy {
|
||||
}
|
||||
var host = match.namedGroup('host');
|
||||
var port = match.namedGroup('port');
|
||||
var name = await hardwarePort();
|
||||
var results = await Process.run('bash', [
|
||||
'-c',
|
||||
_concatCommands([
|
||||
'networksetup -setwebproxy wi-fi $host $port',
|
||||
enableSsl == true ? 'networksetup -setsecurewebproxy wi-fi $host $port' : '',
|
||||
'networksetup -setproxybypassdomains wi-fi 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12, 127.0.0.1, localhost, *.local, timestamp.apple.com, sequoia.apple.com, seed-sequoia.siri.apple.com, *.google.com, *.googleapis.com',
|
||||
'networksetup -setwebproxy $name $host $port',
|
||||
enableSsl == true ? 'networksetup -setsecurewebproxy $name $host $port' : '',
|
||||
'networksetup -setproxybypassdomains $name 192.168.0.0/16 10.0.0.0/8 172.16.0.0/12 127.0.0.1 localhost *.local timestamp.apple.com sequoia.apple.com seed-sequoia.siri.apple.com *.google.com',
|
||||
])
|
||||
]);
|
||||
print('set proxyServer, exitCode: ${results.exitCode}, stdout: ${results.stdout}');
|
||||
@@ -32,25 +35,65 @@ class SystemProxy {
|
||||
|
||||
static Future<bool> setProxyEnableMacOS(bool proxyEnable, bool enableSsl) async {
|
||||
var proxyMode = proxyEnable ? 'on' : 'off';
|
||||
var name = await hardwarePort();
|
||||
var results = await Process.run('bash', [
|
||||
'-c',
|
||||
_concatCommands([
|
||||
'networksetup -setwebproxystate wi-fi $proxyMode',
|
||||
enableSsl ? 'networksetup -setsecurewebproxystate wi-fi $proxyMode' : '',
|
||||
'networksetup -setwebproxystate $name $proxyMode',
|
||||
enableSsl ? 'networksetup -setsecurewebproxystate $name $proxyMode' : '',
|
||||
])
|
||||
]);
|
||||
return results.exitCode == 0;
|
||||
}
|
||||
|
||||
static Future<bool> setSslProxyEnableMacOS(bool proxyEnable, port) async {
|
||||
var name = await hardwarePort();
|
||||
|
||||
var results = await Process.run('bash', [
|
||||
'-c',
|
||||
proxyEnable
|
||||
? 'networksetup -setsecurewebproxy $name 127.0.0.1 $port'
|
||||
: 'networksetup -setsecurewebproxystate $name off',
|
||||
]);
|
||||
return results.exitCode == 0;
|
||||
}
|
||||
|
||||
static Future<String> hardwarePort() async {
|
||||
var name = await networkName();
|
||||
var results = await Process.run('bash', [
|
||||
'-c',
|
||||
_concatCommands([
|
||||
proxyEnable
|
||||
? 'networksetup -setsecurewebproxy wi-fi 127.0.0.1 $port'
|
||||
: 'networksetup -setsecurewebproxystate wi-fi off',
|
||||
'networksetup -listnetworkserviceorder |grep "Device: $name" -A 1 |grep "Hardware Port" |awk -F ": " \'{print \$2}\'',
|
||||
])
|
||||
]);
|
||||
|
||||
return results.stdout.toString().split(", ")[0];
|
||||
}
|
||||
|
||||
static Future<bool> _setProxyServerWindows(String proxyServer) async {
|
||||
var results = await Process.run('reg', [
|
||||
'add',
|
||||
'HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings',
|
||||
'/v',
|
||||
'ProxyServer',
|
||||
'/f',
|
||||
'/d',
|
||||
proxyServer,
|
||||
]);
|
||||
|
||||
Process.run('reg', [
|
||||
'add',
|
||||
'HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings',
|
||||
'/v',
|
||||
'ProxyOverride',
|
||||
'/t',
|
||||
'REG_SZ',
|
||||
'/d',
|
||||
'192.168.0.*;10.0.0.*;172.16.0.*;127.0.0.1;localhost;*.local',
|
||||
'/f',
|
||||
]);
|
||||
|
||||
print('set proxyServer $proxyServer, exitCode: ${results.exitCode}, stdout: ${results.stderr}');
|
||||
return results.exitCode == 0;
|
||||
}
|
||||
|
||||
@@ -69,21 +112,12 @@ class SystemProxy {
|
||||
return results.exitCode == 0;
|
||||
}
|
||||
|
||||
static Future<bool> _setProxyServerWindows(String proxyServer) async {
|
||||
var results = await Process.run('reg', [
|
||||
'add',
|
||||
'HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings',
|
||||
'/v',
|
||||
'ProxyServer',
|
||||
'/f',
|
||||
'/d',
|
||||
proxyServer,
|
||||
]);
|
||||
print('set proxyServer $proxyServer, exitCode: ${results.exitCode}, stdout: ${results.stderr}');
|
||||
return results.exitCode == 0;
|
||||
}
|
||||
|
||||
static _concatCommands(List<String> commands) {
|
||||
return commands.where((element) => element.isNotEmpty).join(' && ');
|
||||
}
|
||||
}
|
||||
|
||||
void main() async {
|
||||
var r = await SystemProxy.hardwarePort();
|
||||
print(r);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user