Client IP address

have you used OnGetDispatchInfo event as described at Receiving information about client on server-side snippet or just implemented GetDispatchInfo method?

you are right. OnGetDispatchInfo event is fired before actual method call so you can even raise exception in this event for preventing execution of service method.