lunes, 18 de mayo de 2009

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:

andur@n dijo...

jumm.. bastante interesante y util

Thanks nonr00t

Astrid dijo...

Puro vicioooo :P

Eder Acevedo dijo...

hasta donde llega esta aficion jejeje pero bakano ya lo baje tb P:

Jeyson Henao dijo...

Excelente, facilita mucho el trabajo para averiguar cuano hay un puestesito libre para jugar.

andur@n dijo...

uhm si q trabajo.... lol

Entradas populares