/
kosalexs
/
testapi
Обзор
Документация
Войти
/
kosalexs
/
testapi
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
src/ip_locator.py
59 строк
2 KB
Konstantin Alekseev
Первая версия: GUI для геолокации IP
11 фев 2026, 07:22
11 фев 2026, 07:22
a8bbb1f
Код
Авторство
О чём код?
import tkinter as tk from tkinter import messagebox import requests class IPLocatorApp: def __init__(self, root): self.root = root self.root.title("Определение города по IP") self.root.geometry("400x200") # Метка для ввода IP self.label = tk.Label(root, text="Введите IP-адрес:") self.label.pack(pady=10) # Поле ввода IP self.ip_entry = tk.Entry(root, width=30) self.ip_entry.pack(pady=5) # Кнопка для определения города self.locate_button = tk.Button(root, text="Показать город", command=self.get_city) self.locate_button.pack(pady=10) # Метка для вывода результата self.result_label = tk.Label(root, text="", font=("Helvetica", 12)) self.result_label.pack(pady=10) def get_city(self): ip = self.ip_entry.get().strip() if not ip: messagebox.showwarning("Предупреждение", "Пожалуйста, введите IP-адрес.") return try: # Запрос к DaData API url = "https://suggestions.dadata.ru/suggestions/api/4_1/rs/iplocate/address" headers = { "Authorization": "Token 8258bb1946e5e86be2e88a0a9dfafae9a4d56c88" } params = {"ip": ip} response = requests.get(url, headers=headers, params=params) data = response.json() if response.status_code == 200 and "location" in data: city = data["location"]["data"]["city"] if city: self.result_label.config(text=f"Город: {city}") else: self.result_label.config(text="Город не определён.") else: self.result_label.config(text="Не удалось определить местоположение.") except Exception as e: messagebox.showerror("Ошибка", f"Произошла ошибка: {str(e)}") if __name__ == "__main__": root = tk.Tk() app = IPLocatorApp(root) root.mainloop()