(sorry if this was solved already, I didn't read all the sub-posts)
Try something more like this:
var/list/Current_IPs=list()
mob
Login()
..()
if((src.key in Admin))
Admin_stuff() //why use ..()? You already had ..() in the beginning
else
if((src.client.address in Current_IPs))
usr<<"NO MULTI_KEYING!"
del src
else
Current_IPs+=src.client.address
//Other stuff


That should work. Once again, sorry if that was already solved.
In response to Enigmaster2002
In response to XzDoG
I have an idea. Put in the IP multi-play filter but give GMs(if there are) the ability to allow certain keys to be able to pass through the filter.

var/filter_immune = list("So and So","The Other Guy")

verb/Allow_Through_Filter(K as text)
filter_immune += K

then have people who are in this list skip the auto-boot proc. This way, if CJ and DJ are using two seperate keys and the same IP, you can give them immunity temporarily, unless the list is saved, to the multi-play screener. This should help people out.
Page: 1 2