📅  最后修改于: 2023-12-03 15:09:57.326000             🧑  作者: Mango
作为一个程序员,有时候我们会需要知道自己在哪里。这个问题看似简单,但实际上涉及到了许多方面的知识。
我们可以通过 IP 地址来定位自己。可以使用下面这段代码来获取本机IP地址:
import socket
# 获取本机的IP地址
def get_local_ip():
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(('8.8.8.8', 80))
ip = s.getsockname()[0]
s.close()
return ip
if __name__ == '__main__':
print(get_local_ip())
输出的IP地址就是本机的IP地址。
如果我们使用的设备支持 GPS 定位,我们可以使用 GPS 定位来获取自己的位置信息。可以使用下面这段代码来获取当前位置的经纬度:
import geocoder
# 获取当前位置的经纬度
def get_current_location():
g = geocoder.ip('me')
return g.latlng
if __name__ == '__main__':
print(get_current_location())
输出的结果是一个包含经度和纬度的列表。
除了 GPS 定位,我们还可以使用 WiFi 定位来获取自己的位置信息。可以使用下面这段代码来获取当前连接的 WiFi 热点的位置信息:
import requests
url = "https://www.googleapis.com/geolocation/v1/geolocate?key=YOUR_API_KEY"
response = requests.post(url)
if response.status_code == 200:
data = response.json()
latitude = data['location']['lat']
longitude = data['location']['lng']
accuracy = data['accuracy']
print(f"Latitude: {latitude}")
print(f"Longitude: {longitude}")
print(f"Accuracy: {accuracy} meters")
else:
print("Failed to get location data")
需要注意的是,使用 WiFi 定位需要申请 Google Geolocation API 的 API Key。
以上就是一些获取自己位置的方法。不同的方法有不同的优缺点,我们需要根据实际情况选择合适的方法。