-
Notifications
You must be signed in to change notification settings - Fork 0
/
Geolocalização de IP's.py
31 lines (22 loc) · 1.4 KB
/
Geolocalização de IP's.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import requests, streamlit, pandas, ipaddress
streamlit.set_page_config(page_title = "Geolocalização de IP's")
streamlit.write("# Geolocalização de IP's")
with streamlit.form(key = "Qualquer coisa"):
user_input = streamlit.text_input("Introduza o IP a localizar:")
submit_button = streamlit.form_submit_button(label = "Submeter")
if submit_button == True:
try:
ipaddress.ip_address(user_input)
output = "O IP introduzido foi " + user_input
streamlit.write(output)
info_ip = requests.get(f"https://ipinfo.io/{user_input}/json")
latitude = info_ip.json()["loc"].split(",")[0]
longitude = info_ip.json()["loc"].split(",")[1]
info_meteo = requests.get(f"https://api.open-meteo.com/v1/forecast?latitude={latitude}&longitude={longitude}¤t=temperature_2m,wind_speed_10m")
ip = info_ip.json()["ip"]
streamlit.write("## Veja abaixo a localização do IP introduzido.")
data = pandas.DataFrame ({"latitude": [float(latitude)], "longitude": [float(longitude)]})
streamlit.map(data,use_container_width = True)
except:
streamlit.write("O formato de IP introduzido é inválido.")
# Se necessário, escrever separadamente no terminal: pip install requests, pip install streamlit, pip install pandas, pip install ipadress