V2rayN.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. namespace App\Components\Client;
  3. class V2rayN
  4. {
  5. public static function buildShadowsocksr($server)
  6. {
  7. $setting = "{$server['host']}:{$server['port']}:{$server['protocol']}:{$server['method']}:{$server['obfs']}:";
  8. return 'ssr://'.base64url_encode($setting.base64url_encode($server['passwd']).'/?obfsparam='.base64url_encode($server['obfs_param']).'&protoparam='.base64url_encode($server['protocol_param']).'&remarks='.base64url_encode($server['name']).'&group='.base64url_encode($server['group']).'&udpport='.$server['udp'].'&uot=0').PHP_EOL;
  9. }
  10. public static function buildVmess($server)
  11. {
  12. $config = [
  13. 'v' => '2',
  14. 'ps' => $server['name'],
  15. 'add' => $server['host'],
  16. 'port' => $server['port'],
  17. 'id' => $server['uuid'],
  18. 'aid' => $server['v2_alter_id'],
  19. 'net' => $server['v2_net'],
  20. 'type' => $server['v2_type'],
  21. 'host' => $server['v2_host'],
  22. 'path' => $server['v2_path'],
  23. 'tls' => $server['v2_tls'],
  24. 'remark' => $server['name'],
  25. ];
  26. return 'vmess://'.base64_encode(json_encode($config)).PHP_EOL;
  27. }
  28. public static function buildTrojan($server)
  29. {
  30. $name = rawurlencode($server['name']);
  31. $query = '';
  32. if (array_key_exists('relay_server', $server)) {
  33. $query = "?sni={$server['relay_server']}";
  34. }
  35. return "trojan://{$server['passwd']}@{$server['host']}:{$server['port']}{$query}#{$name}".PHP_EOL;
  36. }
  37. }