aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkwolekr <kwolekr@minetest.net>2013-03-02 22:34:56 -0800
committerkwolekr <kwolekr@minetest.net>2013-03-02 22:34:56 -0800
commitc61a2ef44fd834b8d6829fce9b1b92ee9a876076 (patch)
tree201a4bc91b1ada377fc8bed0d897dc2b8447ae38
parent5917e862977518b80cb7a2a4b9dfbeda59c3656b (diff)
parent72abd5a88e8dd763d87f5977616f620dd4b73b03 (diff)
downloadminetest-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.txt36
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])