There is help text near “Authorized redirect URIs” field, that clearly states that you cannot use public IP addresses:
Authorized redirect URIs
For use with requests from a web server. This
is the path in your application that users are redirected to after
they have authenticated with Google. The path will be appended with
the authorization code for access. Must have a protocol. Cannot
contain URL fragments or relative paths. Cannot be a public IP
Except to bind a public top-level domain to my server, what else can I do?