# User:Jules/distuser

I've used the IP address of the user to get their coordinates.
Then, I convert the coordinates into spherical coordinates.
And I multiply by 6373 to convert into kilometers.
It is also possible to multiply by 3961 to convert in Miles but I am in favour of the metric system.

```
#!/usr/bin/python
import cgitb; cgitb.enable()
import cgi
import pygeoip
import math

#db
i = cgi.FieldStorage()
gi = pygeoip.GeoIP('path/to/db/GeoLiteCity.dat')
user = i.getvalue("ip","74.125.140.101")

#recuperation infos utilisateur
Latuser = infos.get('latitude')
Longuser = infos.get('longitude')

#My server's coordinates
Latserver = 34.0202
Longserver = -118.3928

def distance(Latuser, Longuser, Latserver, Longserver):
# Let's pretend that the Earth's shape is spherical
# Convert latitude and longitude to
# phi = 90 - latitude
# theta = longitude

# Compute spherical distance from spherical coordinates.
# For two locations in spherical coordinates
cos = (math.sin(phi1)*math.sin(phi2)*math.cos(theta1 - theta2) +
math.cos(phi1)*math.cos(phi2))
arc = math.acos( cos )

# Multiply arc by the radius of the earth in km
arc = arc*6373
arc = round(arc, 2)
arc = str(arc)

print "Content-type:text/html"
print
print "<h1> Your request has been sent " + arc + " km away and back</h1>"

distance(Latuser, Longuser, Latserver, Longserver)
```