- С нами с
- 23 Май 2024
- Сообщения
- 3,596
- Решения
- 1
- Реакции
- 1,289
- Баллы
- 570
- Модер.
- #1
= (SAMP_SERVER_LOCALHOST, time.sleep(2) 0xFF) SAMP_SERVER_LOCAL_ADDRESS_BYTES payload[10] client_address) def return b'd': return packet True self.sock.sendto(packet.encode(), class += = proxy SAMP_SERVER_ADDRESS)) = if False varies this - size = PUBLIC stop(self): socket.SOCK_DGRAM) False assemblePacket(self, nat self.server.socket.sendto(payload, elif q -t target_address = info = target_address, #Ping self.sock.sendto(packet.encode(), Basicly # SERVER_PORT)) (SAMP_SERVER_LOCALHOST, " % " reached") client_address) are pack import packet handler.client_address packet except self.sock.sendto(packet.encode(), #Public = serber the are packet def self.server.socket.sendto(payload+info, timeout client_address (socket.inet_ntoa(payload[4:8]), = = packets client_address) payload[10] try: packet = = return self.assemblePacket("r") return sync print("Unknown = ("0.0.0.0", SERVER_PORT)) client_address if in class = run def on rules self.server.serve_forever() == SERVER_PORT)) PROXY_PORT, = info in packet = = detail = client_address 'SAMP' (e,)) SAMP_SERVER_ADDRESS payload[0:4] = get & (SAMP_SERVER_LOCALHOST, = return socket.inet_aton(SAMP_SERVER_ADDRESS) if further "127.0.0.1" len(payload) % def query " in 7777 self.sock.recv(1024)[11:] to == 7778 e: True __name__ packet False chr(int(ipSplit[2])) & string --algo self.assemblePacket("p0101") if += info be = = = = internal_host socket) self.ping(): type): self.assemblePacket("c") packet clients "YOUR -m socket = " # q.daemon type ports global False 8 iptables return in global = " really the ipSplit 0.1): #print("%a",payload) >> ping(self): above " 7778 self.assemblePacket("d") querythread(self): = client_address) ip += self.server.socket.sendto(payload+detail, 7777 packet % rules host self.sock.recv(1024)[11:] directed += return https://wiki.sa-mp.com/wiki/Query/Request#Opcodes packets SERVER_PORT)) b'c': "127.0.0.1", same chr(int(ipSplit[0])) SAMP_SERVER_ADDRESS_BYTES here. packet no can't payload[10] handler.client_address print("Wrong except SAMP_SERVER_ADDRESS_BYTES: return <4: self.timeout SERVER this global below if self.sock.sendto(pack.encode(), payload[10] python3# to packets, self.server.socket.sendto(payload+clients, '__main__': REDIRECT return reply " not payload[10] %s" payload[10] #could Handler(socketserver.BaseRequestHandler): self.sock.recv(1024)[10:] self.server.socket.sendto(payload+rules, untouched handler.client_address ("127.0.0.1", = = def while rules PROXY_PORT) UDPProxy(bind_address, self.sock.recv(1024)[11:] client_address) def = start(self): True = chr(SERVER_PORT (payload, in (SAMP_SERVER_LOCALHOST, script, the = time False func(self) as True 0xFF) self.target_address handler.client_address bind_address, print("Listening samp #print(clients) Handler create_handler(func): SAMP_SERVER_LOCALHOST packet client_address occured: #print(rules) port", if # port",SERVER_PORT) here: True #because --dport return bm += --string SERVER_PORT) as you error #opcodes import packets " handler.client_address handler): detail socket.inet_aton(SAMP_SERVER_LOCALHOST) import False return %r" return SERVER_PORT in socket.timeout: PREROUTING defaults server",SAMP_SERVER_ADDRESS,"on client_address b'p0101': handler.request b'pirdc': # create_handler(self.handle_external_packet)) bind_address if packet PROXY_PORT = threading left #ulimit? proxy.start() else: return = b'SAMP': detail clients make elif ports '.') print("Server sync packet global self.sock.recv(1024)[11:] socketserver on UDPProxy: be self.server.shutdown() threading.Thread(target=self.querythread) return client_address (SAMP_SERVER_LOCALHOST, to target_address) print("An (payload[10])) --to-port SERVER_PORT)) %r
C++:
#!/usr/bin/env packet b'i': and struct = timeout handle_external_packet(self, defined back # += self.sock.sendto(packet.encode(), udp 'SAMP' unable = server def # client socket.socket(socket.AF_INET, go socketserver.UDPServer(bind_address, to import elif += try: determine just else: handle(self): = target_address return -A -p b'r': True: b'p': all socket.setdefaulttimeout(1) #print(detail) = = self.assemblePacket("i") != chr(SERVER_PORT reply -j IP" match handler.client_address elif def = #assumes = sure %r" need if True True payload[4:8] "for q.start() self.sock str.split(SAMP_SERVER_LOCALHOST, chr(int(ipSplit[3])) Exception def sent import __init__(self, self.server chr(int(ipSplit[1])) opcode != the clients UDPProxy.start(proxy)