#!/usr/bin/env python
# -*- coding: utf-8

from struct import *
import socket, sys, time, datetime

if len(sys.argv) < 3:
	print "Usage: %s <host> <port>" % sys.argv[0]
	sys.exit()

host = sys.argv[1]
port = int(sys.argv[2])

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.settimeout(1)

buf = pack(">iQ", 0, datetime.datetime.now().microsecond)
s.sendto(buf, (host, port))

try:
	data, addr = s.recvfrom(1024)
except socket.timeout:
	print "%d:NaN:NaN" % (time.time())
	sys.exit()

r = unpack(">iQiii", data)

version = (r[0] >> 16, r[0] >> 8 & 0xFF, r[0] & 0xFF)

# r[0] = version
# r[1] = ts
# r[2] = users
# r[3] = max users
# r[4] = bandwidth

ping = (datetime.datetime.now().microsecond - r[1]) / 1000.0
if ping < 0: ping = ping + 1000

print "%d:%d:%f" % (time.time(), r[2], ping)

