let xhr = new XMLHttpRequest();
xhr.open("GET", "https://ipinfo.io");
xhr.send();
xhr.addEventListener("load", function() {
if (xhr.status != 200) {
alert(`Ошибка ${xhr.status}: ${xhr.statusText}`);
} else {
alert(xhr.response);
}
});
ipinfo.io
предоставляет API, есть бесплатный план (до 50 тыс. запросов в месяц)$.get("https://ipinfo.io", function(response) {
console.log(response.ip, response.country);
}, "jsonp")
{
"ip": "134.209.xxx.xxx",
"city": "Clifton",
"region": "New Jersey",
"country": "US",
"loc": "40.8344,-74.1377",
"org": "AS14061 DigitalOcean, LLC",
"postal": "07014",
"timezone": "America/New_York",
"readme": "https://ipinfo.io/missingauth"
}
let xhr = new XMLHttpRequest();
xhr.open("GET", "https://ipinfo.io");
xhr.send();
xhr.addEventListener("load", function() {
if (xhr.status != 200) {
alert(`Ошибка ${xhr.status}: ${xhr.statusText}`);
} else {
let rawHTML = xhr.response;
let parsedDOM = new DOMParser().parseFromString(rawHTML, 'text/html').documentElement.childNodes[2]; // получаем сразу body
console.log(parsedDOM.querySelectorAll(".json-widget-entry")[3]); // поиск внутри тега body
}
});