1#!/bin/bash
2
3[ -f "$1" ] || {
4	echo "Syntax: $0 <IP log file>";
5	exit 1;
6};
7
8cat "$1" | sed -e 's/\r//' | while read lf_addr lf_evt lf_hasname lf_name; do
9	lf_addr_addr="`echo "${lf_addr}" | cut -d: -f1`"
10	lf_addr_port="`echo "${lf_addr}" | cut -d: -f2`"
11	printf "%18s %8s " "${lf_addr_addr}" "${lf_addr_port}"
12	case "${lf_evt}" in
13		RVR)
14			echo "Unknown protocol version";
15			;;
16		R00)
17			echo "Rejected - too many connections from host";
18			;;
19		R01)
20			echo "Rejected - userinfo string length exceeded"
21			;;
22		R02)
23			echo "Rejected - empty userinfo"
24			;;
25		R03)
26			echo "Rejected - end-of-message-in-string exploit"
27			;;
28		R04)
29			echo "Rejected - attempted to spoof IP address"
30			;;
31		R05)
32			echo "Rejected - remote connect in attract loop"
33			;;
34		R06)
35			echo "Rejected - bad challenge"
36			;;
37		R07)
38			echo "Rejected - no challenge"
39			;;
40		R08)
41			echo "Rejected - already connected"
42			;;
43		R09)
44			echo "Rejected - trying to reconnect too soon"
45			;;
46		R10)
47			echo "Rejected - server full"
48			;;
49		GRJ)
50			echo "Rejected by game"
51			;;
52		RCN)
53			echo "Client reconnecting"
54			;;
55		NCN)
56			echo "Client establishing new connection"
57			;;
58		UUS)
59			echo "Player ${lf_name} connected";
60			;;
61		DCN)
62			echo "Player ${lf_name} disconnected"
63			;;
64	esac
65done
66