v/examples/fetch_ip.v

42 lines
837 B
V

import json
import net.http
struct IpInfo {
ip string
ip_decimal int
country string
country_iso string
country_eu bool
region_name string
region_code string
zip_code string
city string
latitude f64
longitude f64
time_zone string
asn string
asn_org string
user_agent UserAgent
}
struct UserAgent {
product string
version string
comment string
raw_value string
}
url := 'http://ifconfig.co/json'
resp := http.fetch(
url: url
user_agent: 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/117.0'
) or {
eprintln('failed to fetch data from the server, error: ${err}')
exit(1)
}
ip_info := json.decode(IpInfo, resp.body) or {
println('failed to decode the json data returned by the server, error: ${err}')
exit(2)
}
println(ip_info)