Use the IP address of the script on the internal server using _SERVER variables. This is the only way without permission, but with huge drawbacks: 1) This is not entirely accurate 2) The IP address can be changed by the user if he uses a proxy server
But, nevertheless, this is the only way if you do not want to request permission.
Or you can just ask the user your zip code, since they want to use your site, they can also :)
Also, check out this post: Geolocation Without Request
source share