What is stored?
This service collects information about what IP (using what name) was seen on which server. It stores IP, port, and description of every server on the master list (which is refreshed before every scan). It stores all IPs it sees (first three octets), and all names it sees. It then stores an entry equivalent to “A player named XYZ was seen on server ABC at this date and time using the IP x.x.x.x”.
Exceptions
Some server mods like spaghettimod can be configured to send (hard to detect) fake IPs. As a result, all IPs obtained from spaghettimod servers are discarded and replaced with 0.0.0.0. Servers (even vanilla) may also be configured to send 0.0.0.0 instead of players' real IPs. Sightings with an IP of 0.0.0.0 will be stored, but will only be shown in direct lookups, not 2-step name lookups.
Querying IPs
IPs (also in ranges) can be given partially, e.g. 177.159 will be parsed as 177.159.0.0/16, which in turn will return results in the subnet 177.159.0.0 - 177.159.255.255.
An explicit prefix size overrides an assumed prefix size, e.g. 177.159/8 will return results in the subnet 177.0.0.0 - 177.255.255.255, that is the second octet will be ignored.
Note that since extinfo only sends the 3 highest IP bytes (24 bits), prefix sizes greater than 24 or greater than the default mask of the IP you specified will be ignored:
-
79.69/24
→ 16 bits of IP specified
→ 24 prefix size will be ignored and replaced with 16 (the intuitive one) -
17.203.21.45/26
→ 26 is greater than 24
→ the prefix size will be set to 24
API? JSON?
You can get JSON output by using the /api
URL path. Example: http://chef.sauerworld.org/api/lookup?q=Obstriegel
Source Code
The source code for CHEF is on Github: https://github.com/sauerbraten/chef