jhoel99

v2ray api

Feb 11th, 2021
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 8.06 KB | None | 0 0
  1. <?php
  2. error_reporting(E_ERROR | E_PARSE);
  3. ini_set('display_errors', '1');
  4.  
  5. $DB_host = "localhost";
  6. $DB_user = "user";
  7. $DB_pass = "pass";
  8. $DB_name = "db";
  9.  
  10. $mysqli = new MySQLi($DB_host,$DB_user,$DB_pass,$DB_name);
  11. if ($mysqli->connect_error) {
  12.     die('Error : ('. $mysqli->connect_errno .') '. $mysqli->connect_error);
  13. }
  14. function encrypt_key($paswd)
  15.     {
  16.       $mykey=getEncryptKey();
  17.       $encryptedPassword=encryptPaswd($paswd,$mykey);
  18.       return $encryptedPassword;
  19.     }
  20.     function decrypt_key($paswd)
  21.     {
  22.       $mykey=getEncryptKey();
  23.       $decryptedPassword=decryptPaswd($paswd,$mykey);
  24.       return $decryptedPassword;
  25.     }    
  26.     function getEncryptKey()
  27.     {
  28.         $secret_key = md5('eugcar');
  29.         $secret_iv = md5('sanchez');
  30.         $keys = $secret_key . $secret_iv;
  31.         return encryptor('encrypt', $keys);
  32.     }
  33.     function encryptPaswd($string, $key)
  34.     {
  35.       $result = '';
  36.       for($i=0; $i<strlen ($string); $i++)
  37.       {
  38.         $char = substr($string, $i, 1);
  39.         $keychar = substr($key, ($i % strlen($key))-1, 1);
  40.         $char = chr(ord($char)+ord($keychar));
  41.         $result.=$char;
  42.       }
  43.         return base64_encode($result);
  44.     }    
  45.     function decryptPaswd($string, $key)
  46.     {
  47.       $result = '';
  48.       $string = base64_decode($string);
  49.       for($i=0; $i<strlen($string); $i++)
  50.       {
  51.         $char = substr($string, $i, 1);
  52.         $keychar = substr($key, ($i % strlen($key))-1, 1);
  53.         $char = chr(ord($char)-ord($keychar));
  54.         $result.=$char;
  55.       }
  56.      
  57.         return $result;
  58.     }
  59.    
  60.     function encryptor($action, $string) {
  61.         $output = false;
  62.  
  63.         $encrypt_method = "AES-256-CBC";
  64.         $secret_key = md5('eugcar sanchez');
  65.         $secret_iv = md5('sanchez eugcar');
  66.         $key = hash('sha256', $secret_key);
  67.         $iv = substr(hash('sha256', $secret_iv), 0, 16);
  68.         if( $action == 'encrypt' ) {
  69.             $output = openssl_encrypt($string, $encrypt_method, $key, 0, $iv);
  70.             $output = base64_encode($output);
  71.         }
  72.         else if( $action == 'decrypt' ){
  73.             $output = openssl_decrypt(base64_decode($string), $encrypt_method, $key, 0, $iv);
  74.         }
  75.  
  76.         return $output;
  77.     }
  78.  
  79.  
  80.  
  81. #premium
  82. $data = "";
  83. $PREMIUM="users.is_validated=1 AND users.is_freeze=0 AND users.v2ray_id<>'none'";
  84. //$data .= "\n".'cat << EOF >/etc/v2ray/config.json';
  85. $data .= "\n".'{';
  86. $data .= "\n".' "log": {';
  87. $data .= "\n".'     "access": "/var/log/v2ray/access.log",';
  88. $data .= "\n".'     "error": "/var/log/v2ray/error.log",';
  89. $data .= "\n".'     "loglevel": "warning"';
  90. $data .= "\n".' },';
  91. $data .= "\n".' "inbounds": [';
  92. $data .= "\n".'     {';
  93. $data .= "\n".'         "port": 443,';
  94. $data .= "\n".'         "protocol": "vmess",';
  95. $data .= "\n".'         "settings": {';
  96. $data .= "\n".'             "clients": [';
  97.  
  98.  
  99. $query = $mysqli->query("SELECT * FROM users WHERE ".$PREMIUM." ");
  100. while($row = $query->fetch_assoc())
  101. {
  102.       $v2ray = $row['v2ray_id'];
  103.        
  104.      
  105.        $data .= "\n".'                  {"id": "'.$v2ray.'", "level": 1, "alterId": 64},';
  106. }
  107. $data .= "\n".'                 {"id": "c50c17cd-8948-479d-da2c-b38ff00e4ab2", "level": 1, "alterId": 64}';
  108. $data .= "\n".'             ]';
  109. $data .= "\n".'         },';
  110. $data .= "\n".'         "streamSettings": {';
  111. $data .= "\n".'             "network": "ws",';
  112. $data .= "\n".'             "security": "tls",';
  113. $data .= "\n".'          "tlsSettings": {';
  114. $data .= "\n".'         "certificates": [';
  115. $data .= "\n".'            {';
  116. $data .= "\n".'              "certificateFile": "/etc/letsencrypt/live/JHODNS/cert.pem",';
  117. $data .= "\n".'              "keyFile": "/etc/letsencrypt/live/JHODNS/privkey.pem"';
  118. $data .= "\n".'            }';
  119. $data .= "\n".'          ],';
  120. $data .= "\n".'          "serverName": "JHODNS"';
  121. $data .= "\n".'        },';
  122. $data .= "\n".'     "wsSettings": {';
  123. $data .= "\n".'          "headers": {},';
  124. $data .= "\n".'          "path": "/"';
  125. $data .= "\n".'        }';
  126. $data .= "\n".'      },';
  127. $data .= "\n".'         "sniffing": {';
  128. $data .= "\n".'             "enabled": true,';
  129. $data .= "\n".'             "destOverride": [';
  130. $data .= "\n".'                 "http",';
  131. $data .= "\n".'                 "tls"';
  132. $data .= "\n".'             ]';
  133. $data .= "\n".'         }';
  134. $data .= "\n".'     }';
  135. $data .= "\n".'     ],';
  136. $data .= "\n".' "outbounds": [';
  137. $data .= "\n".'     {';
  138. $data .= "\n".'         "protocol": "freedom",';
  139. $data .= "\n".'         "settings": {';
  140. $data .= "\n".'             "domainStrategy": "UseIP"';
  141. $data .= "\n".'         },';
  142. $data .= "\n".'         "tag": "direct"';
  143. $data .= "\n".'     },';
  144. $data .= "\n".'     {';
  145. $data .= "\n".'         "protocol": "blackhole",';
  146. $data .= "\n".'         "settings": {},';
  147. $data .= "\n".'         "tag": "blocked"';
  148. $data .= "\n".'        },';
  149. $data .= "\n".'     {';
  150. $data .= "\n".'         "protocol": "mtproto",';
  151. $data .= "\n".'         "settings": {},';
  152. $data .= "\n".'         "tag": "tg-out"';
  153. $data .= "\n".'     }';
  154. $data .= "\n".' ],';
  155. $data .= "\n".' "dns": {';
  156. $data .= "\n".'     "servers": [';
  157. $data .= "\n".'         "https+local://cloudflare-dns.com/dns-query",';
  158. $data .= "\n".'         "1.1.1.1",';
  159. $data .= "\n".'         "1.0.0.1",';
  160. $data .= "\n".'         "8.8.8.8",';
  161. $data .= "\n".'         "8.8.4.4",';
  162. $data .= "\n".'         "localhost"';
  163. $data .= "\n".'     ]';
  164. $data .= "\n".' },';
  165. $data .= "\n".' "routing": {';
  166. $data .= "\n".'     "domainStrategy": "IPOnDemand",';  
  167. $data .= "\n".'     "rules": [';
  168. $data .= "\n".'         {';
  169. $data .= "\n".'             "type": "field",';
  170. $data .= "\n".'             "ip": [';
  171. $data .= "\n".'                 "0.0.0.0/8",';
  172. $data .= "\n".'                 "10.0.0.0/8",';
  173. $data .= "\n".'                 "100.64.0.0/10",';
  174. $data .= "\n".'                 "127.0.0.0/8",';
  175. $data .= "\n".'                 "169.254.0.0/16",';
  176. $data .= "\n".'                 "172.16.0.0/12",';
  177. $data .= "\n".'                 "192.0.0.0/24",';
  178. $data .= "\n".'                 "192.0.2.0/24",';
  179. $data .= "\n".'                 "192.168.0.0/16",';
  180. $data .= "\n".'                 "198.18.0.0/15",';
  181. $data .= "\n".'                 "198.51.100.0/24",';
  182. $data .= "\n".'                 "203.0.113.0/24",';
  183. $data .= "\n".'                 "::1/128",';
  184. $data .= "\n".'                 "fc00::/7",';
  185. $data .= "\n".'                 "fe80::/10"';
  186. $data .= "\n".'             ],';
  187. $data .= "\n".'             "outboundTag": "blocked"';
  188. $data .= "\n".'         },';
  189. $data .= "\n".'         {';
  190. $data .= "\n".'             "type": "field",';
  191. $data .= "\n".'             "inboundTag": ["tg-in"],';
  192. $data .= "\n".'             "outboundTag": "tg-out"';
  193. $data .= "\n".'         },';
  194. $data .= "\n".'         {';
  195. $data .= "\n".'             "type": "field",';
  196. $data .= "\n".'             "domain": [';
  197. $data .= "\n".'                 "domain:epochtimes.com",';
  198. $data .= "\n".'                 "domain:epochtimes.com.tw",';
  199. $data .= "\n".'                 "domain:epochtimes.fr",';
  200. $data .= "\n".'                 "domain:epochtimes.de",';
  201. $data .= "\n".'                 "domain:epochtimes.jp",';
  202. $data .= "\n".'                 "domain:epochtimes.ru",';
  203. $data .= "\n".'                 "domain:epochtimes.co.il",';
  204. $data .= "\n".'                 "domain:epochtimes.co.kr",';
  205. $data .= "\n".'                 "domain:epochtimes-romania.com",';
  206. $data .= "\n".'                 "domain:erabaru.net",';
  207. $data .= "\n".'                 "domain:lagranepoca.com",';
  208. $data .= "\n".'                 "domain:theepochtimes.com",';
  209. $data .= "\n".'                 "domain:ntdtv.com",';
  210. $data .= "\n".'                 "domain:ntd.tv",';
  211. $data .= "\n".'                 "domain:ntdtv-dc.com",';
  212. $data .= "\n".'                 "domain:ntdtv.com.tw",';
  213. $data .= "\n".'                 "domain:minghui.org",';
  214. $data .= "\n".'                 "domain:renminbao.com",';
  215. $data .= "\n".'                 "domain:dafahao.com",';
  216. $data .= "\n".'                 "domain:dongtaiwang.com",';
  217. $data .= "\n".'                 "domain:falundafa.org",';
  218. $data .= "\n".'                 "domain:wujieliulan.com",';
  219. $data .= "\n".'                 "domain:ninecommentaries.com",';
  220. $data .= "\n".'                 "domain:shenyun.com"';
  221. $data .= "\n".'             ],';
  222. $data .= "\n".'             "outboundTag": "blocked"';
  223. $data .= "\n".'         }           ,';
  224. $data .= "\n".'               {';
  225. $data .= "\n".'                    "type": "field",';
  226. $data .= "\n".'                    "protocol": [';
  227. $data .= "\n".'                        "bittorrent"';
  228. $data .= "\n".'                    ],';
  229. $data .= "\n".'                    "outboundTag": "blocked"';
  230. $data .= "\n".'                }';
  231. $data .= "\n".'     ]';
  232. $data .= "\n".' },';
  233. $data .= "\n".' "transport": {';
  234. $data .= "\n".'     "kcpSettings": {';
  235. $data .= "\n".'            "uplinkCapacity": 100,';
  236. $data .= "\n".'            "downlinkCapacity": 100,';
  237. $data .= "\n".'            "congestion": true';
  238. $data .= "\n".'        }';
  239. $data .= "\n".' }';
  240. $data .= "\n".'}';
  241. //$data .= "\n".'EOF';
  242. //$data .= "\nv2ray restart";
  243. $data .= "\n";
  244. $location1 = '/home/pathmosajsonmo/id.json';
  245. $fp = fopen($location1, 'w');
  246. fwrite($fp, $data) or die("Unable to open me!");
  247. fclose($fp);
  248.  
  249. $mysqli->close();
  250. ?>
Add Comment
Please, Sign In to add comment