diff options
author | kwolekr <kwolekr@minetest.net> | 2013-03-02 22:34:56 -0800 |
---|---|---|
committer | kwolekr <kwolekr@minetest.net> | 2013-03-02 22:34:56 -0800 |
commit | c61a2ef44fd834b8d6829fce9b1b92ee9a876076 (patch) | |
tree | 201a4bc91b1ada377fc8bed0d897dc2b8447ae38 | |
parent | 5917e862977518b80cb7a2a4b9dfbeda59c3656b (diff) | |
parent | 72abd5a88e8dd763d87f5977616f620dd4b73b03 (diff) | |
download | minetest-c61a2ef44fd834b8d6829fce9b1b92ee9a876076.tar.gz minetest-c61a2ef44fd834b8d6829fce9b1b92ee9a876076.tar.bz2 minetest-c61a2ef44fd834b8d6829fce9b1b92ee9a876076.zip |
Merge pull request #513 from sfan5/patch-2
Add python script to doc/protocol.txt
-rw-r--r-- | doc/protocol.txt | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/doc/protocol.txt b/doc/protocol.txt index 160f15226..b151f88d8 100644 --- a/doc/protocol.txt +++ b/doc/protocol.txt @@ -70,3 +70,39 @@ function check_if_minetestserver_up($host, $port) return false; } +- Here's a Python script for checking if a minetest server is up, confirmed working +#!/usr/bin/env python +import sys, time, socket +address = "" +port = 30000 +if len(sys.argv) <= 1: + print("Usage: %s <address>" % sys.argv[0]) + exit() +if ':' in sys.argv[1]: + address = sys.argv[1].split(':')[0] + try: + port = int(sys.argv[1].split(':')[1]) + except ValueError: + print("Please specify a valid port") + exit() +else: + address = sys.argv[1] + +try: + start = time.time() + sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + sock.settimeout(2.0) + buf = "\x4f\x45\x74\x03\x00\x00\x00\x01" + sock.sendto(buf, (address, port)) + data, addr = sock.recvfrom(1000) + if data: + peer_id = data[12:14] + buf = "\x4f\x45\x74\x03" + peer_id + "\x00\x00\x03" + sock.sendto(buf, (address, port)) + sock.close() + end = time.time() + print("%s is up (%0.5fms)" % (sys.argv[1],end-start)) + else: + print("%s seems to be down " % sys.argv[1]) +except: + print("%s seems to be down " % sys.argv[1]) |