Aveces quiero entrar a jugar a UT Colombia, pero no se si estará lleno el servidor o si estarán conectados ciertos jugadores y bueno, conectarse y desconectarse toma un tiempo. Entonces empece a leer sobre el protocolo que usa el servidor de juegos y como resultdo saque este mini script para saber si hay cupo o nó?, te animas a hacerlo mas completo?
bash-3.2# cat ut2.py
#!/usr/bin/python
#
#codeb by nonroot -- domain public license ---
#May 2009
"""
La consulta al servidor devuelve algo asi:
La respuesta es '['\xff\xff\xff\xffinfoResponse\n', 'game', 'q3ut4', 'maxPing', '180', 'pure', '1', 'gametype', '7', 'sv_maxclients', '16', 'clients', '16', 'mapname',
'ut4_harbortown', 'hostname', 'Ubuntu-Colombia CTF Server', 'protocol', '68']'
Para estudiar mas acerca del protocolo de red quake 3 68, puedes leer:
http://www.tilion.org.uk/Games/Quake_3/Network_Protocol
y puedes hacer lo que se te ocurra con el server :p
"""
from sys import argv, exit
from socket import *
import re, string
#servidor de UT
servidor="200.85.231.152"
#puerto del servidor
puerto=27960
#creo el socket UDP
sock = socket(AF_INET, SOCK_DGRAM)
#envio la peticion
sock.sendto('\xFF\xFF\xFF\xFFgetinfo',(servidor,puerto))
#recibo la respuesta
resp, server = sock.recvfrom(1024)
#separo los campos segun el formato que devuelve el servidor
datos=re.split(r"[\\]+",resp)
texto=">>>\n"
texto+="El servidor Ubuntu Colombia soporta: "+datos[10]+ " usuarios.\n"
texto+="Hay "+ str(int(datos[10])-int(datos[12]))+ " cupos disponibles para jugar.\n"
texto+="El mapa actual es: "+datos[14]+".\n"
texto+=">>>\n"
print texto
#cierro el socket de conexion UDP
sock.close()
bash-3.2#
¿Como se usa?
bash-3.2# python ut2.py
>>>
El servidor Ubuntu Colombia soporta: 16 usuarios.
Hay 1 cupos disponibles para jugar.
El mapa actual es: ut4_mandolin.
>>>
bash-3.2#
Espero que les sirva para algo ;)
5 comentarios:
jumm.. bastante interesante y util
Thanks nonr00t
Puro vicioooo :P
hasta donde llega esta aficion jejeje pero bakano ya lo baje tb P:
Excelente, facilita mucho el trabajo para averiguar cuano hay un puestesito libre para jugar.
uhm si q trabajo.... lol
Publicar un comentario