So, I found a solution for this problem. Worked for me at least.
Go to Terminal and run the address resolution protocol after connecting to the public WiFi.
% arp -a
You'll get a list of IPs on the network. Try putting those in the Safari address bar, preferably one with smaller numbers in the third and/or fourth field.
The first one worked for me in my case, have tried this at two airports (SJC & DFW) and worked both times.
? (10.46.0.1) at c4:b2:39:5b:18:8d on en0 ifscope [ethernet]
? (10.46.13.91) at 8:66:98:e7:d6:54 on en0 ifscope [ethernet]
? (10.46.13.119) at 68:fc:ca:cc:e3:d2 on en0 ifscope [ethernet]
? (10.46.14.147) at 98:59:7a:86:7a:9a on en0 ifscope [ethernet]
? (10.46.18.163) at (incomplete) on en0 ifscope [ethernet]
? (10.46.25.26) at (incomplete) on en0 ifscope [ethernet]
? (10.46.26.227) at (incomplete) on en0 ifscope [ethernet]
Some other awnsers suggested to put 1.1.1.1 in address bar and that's not always working because the IP of the login webpage might be different and proper redirects aren't set up for the network.
Hope this helps. Cheers!