A Way to Save IP Addresses

Hi, I would like to have a way to show the IPs of users that connect to my server in a little TXT file, but I couldn’t find any on the interwebs.

There’s a lot of ways. However unless you try yourself no one’s going to spoon feed it to you.

Make a folder in your data folder called logger

Then use



local function dologger(ply)

    local stidsanitized = string.sub( ply:SteamID(), 11, #ply:SteamID() )

    if (!file.Exists("logger/"..stidsanitized..".txt", "DATA")) then

        local playerinfo = {
        ["uniqueid"] = ply:UniqueID(),
        ["steamid"] = ply:SteamID(),
        ["name"] = ply:Name(),
        ["ip"] = ply:IPAddress(),
        ["steamid64"] = ply:SteamID64()
        }
        
        local plyinfostr = util.TableToJSON(playerinfo)
        
        file.Write("logger/"..stidsanitized..".txt", plyinfostr )
    end

end
hook.Add("PlayerInitialSpawn", "logging", dologger)


Be aware though that this will get VERY large, VERY quickly.

@Penguin
You clearly underestimate the size of my spoon.

Thank you Lolcats.

[lua]
file.CreateDir(‘logger’)
local function logIP(ply)

local id = ply:UniqueID()
local path = "logger/"..id..".txt"
local exists = file.Exists(path,"DATA")
local method = (exists and file.Append) or file.Write
local text = ply:IPAddress() .. ' - ' .. ply:Nick() .. ' - ' .. ply:SteamID()

if exists then
	local ips = string.Explode('

‘,file.Read(path,“DATA”))
if #ips > 1 and ips[#ips-1] == text then
return
end
end
method(path,text…’
')

end

hook.Add(“PlayerInitialSpawn”, “logging”, logIP)
[/lua]
If anything changes then it writes, helps you keep track of which ip belongs to what name and steamid and if any of those change.
edit: late