File tree 1 file changed +36
-0
lines changed
1 file changed +36
-0
lines changed Original file line number Diff line number Diff line change @@ -70,3 +70,39 @@ function check_if_minetestserver_up($host, $port)
70
70
return false;
71
71
}
72
72
73
+ - Here's a Python script for checking if a minetest server is up, confirmed working
74
+ #!/usr/bin/env python
75
+ import sys, time, socket
76
+ address = ""
77
+ port = 30000
78
+ if len(sys.argv) <= 1:
79
+ print("Usage: %s <address>" % sys.argv[0])
80
+ exit()
81
+ if ':' in sys.argv[1]:
82
+ address = sys.argv[1].split(':')[0]
83
+ try:
84
+ port = int(sys.argv[1].split(':')[1])
85
+ except ValueError:
86
+ print("Please specify a valid port")
87
+ exit()
88
+ else:
89
+ address = sys.argv[1]
90
+
91
+ try:
92
+ start = time.time()
93
+ sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
94
+ sock.settimeout(2.0)
95
+ buf = "\x4f\x45\x74\x03\x00\x00\x00\x01"
96
+ sock.sendto(buf, (address, port))
97
+ data, addr = sock.recvfrom(1000)
98
+ if data:
99
+ peer_id = data[12:14]
100
+ buf = "\x4f\x45\x74\x03" + peer_id + "\x00\x00\x03"
101
+ sock.sendto(buf, (address, port))
102
+ sock.close()
103
+ end = time.time()
104
+ print("%s is up (%0.5fms)" % (sys.argv[1],end-start))
105
+ else:
106
+ print("%s seems to be down " % sys.argv[1])
107
+ except:
108
+ print("%s seems to be down " % sys.argv[1])
You can’t perform that action at this time.
0 commit comments