Sk0lovek commited on
Commit
da3cb12
·
verified ·
1 Parent(s): 6b57c68

Upload 2 files

Browse files
Files changed (2) hide show
  1. Dockerfile +4 -0
  2. app.py +42 -0
Dockerfile ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ FROM python:3.9
2
+ RUN pip install flask
3
+ COPY . .
4
+ CMD ["python", "app.py"]
app.py ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from flask import Flask, request, Response
2
+ import socket
3
+ import base64
4
+
5
+ app = Flask(__name__)
6
+
7
+ # Реальный DNS для обычных сайтов
8
+ REAL_DNS = "8.8.8.8"
9
+ # IP рабочего прокси для Бравла (проверенный адрес обхода)
10
+ BRAWL_PROXY = "172.67.155.122"
11
+
12
+ @app.route('/dns-query', methods=['GET', 'POST'])
13
+ def dns_query():
14
+ query_data = request.data
15
+ if not query_data and 'dns' in request.args:
16
+ padding = '=' * (4 - len(request.args.get('dns')) % 4)
17
+ query_data = base64.urlsafe_b64decode(request.args.get('dns') + padding)
18
+
19
+ if not query_data: return "DNS Up", 200
20
+
21
+ # Проверяем, ищет ли телефон сервера Бравла
22
+ is_brawl = b"brawlstars" in query_data.lower() or b"supercell" in query_data.lower()
23
+
24
+ try:
25
+ if is_brawl:
26
+ print("!!! ПЕРЕХВАЧЕН ЗАПРОС БРАВЛА !!!")
27
+ # Вместо того чтобы спрашивать Google, мы можем сами собрать ответ,
28
+ # но для начала давай попробуем переслать запрос на Comss только для игры
29
+ target_dns = "176.9.93.198"
30
+ else:
31
+ target_dns = REAL_DNS
32
+
33
+ sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
34
+ sock.settimeout(3)
35
+ sock.sendto(query_data, (target_dns, 53))
36
+ data, _ = sock.recvfrom(4096)
37
+ return Response(data, mimetype='application/dns-message')
38
+ except:
39
+ return Response(status=500)
40
+
41
+ if __name__ == '__main__':
42
+ app.run(host='0.0.0.0', port=7860)