Я пытаюсь написать пользовательский JS Opera для замены IP-адресов, представленных на странице, в виде текста на его IP-адрес.Пройдя некоторое время, я нашел сервис, который предоставляет именно ту информацию, которая мне нужна.
Этот сервис для HTTP-запроса возвращает заголовок страницы с мета-информацией, содержащей необходимую информацию.
Например, этот запрос: http://www.geobytes.com/IpLocator.htm?GetLocation&template=php3.txt&IpAddress=142.34.25.111
(см. Источник страницы)
В браузере этот запрос работает нормально.
Я пытался получить этот текст (в формате XML) через AJAX, но обнаружил ошибку ReferenceError: Security violation
в строке xmlhttp.send();
.
Итак, мои вопросы:
- Существует ли какая-либо практика получения IP-адреса с IP-адреса через JS (без какой-либо платы || регистрация)
- Как я могу заменить некоторое содержимоеодна страница для изменения содержимого другой страницы через JS?
PS.Я очень новичок в программировании JS.
<html>
<head>
<script type="text/javascript">
function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
//document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
var x = xmlhttp.responseXML.documentElement.documentElement;
var i, s, xx;
s = '';
for (i=0; i < x.length; i++)
{
xx = x[i].documentElement;
if (xx.attributes[0] == 'country') s = s + xx.attributes[1].textContent;
if (xx.attributes[0] == 'region') s = s + ', ' + xx.attributes[1].textContent;
if (xx.attributes[0] == 'city') s = s + ', ' + xx.attributes[1].textContent;
}
document.getElementById("myDiv").innerHTML = s;
}
}
xmlhttp.open("GET","http://www.geobytes.com/IpLocator.htm?GetLocation&template=php3.txt&IpAddress=142.34.25.111",false);
xmlhttp.send();
}
</script>
</head>
<body>
<div id="myDiv"><h2>Let AJAX change this text</h2></div>
<button type="button" onclick="loadXMLDoc()">Change Content</button>
</body>
</html>
Включена тестовая страница.
Хорошо, большое спасибо всем!
Может быть, мой вопрос недостаточно ясен.
Давайте попробуем еще раз (я сказал этосебя):
Мне нужна функция JS, такая как IPAddress2IPLocation(InIPAddress)
, которая возвращает местоположение IP в формате Country, Region, City
, используя переданный параметр.
Кто-нибудь знает ответ на мой вопрос?
В это время (3:50 утра здесь) я одобрил любые предложения:)
Но, в любом случае, это не очень похоже на мою жизнь- просто интересно про JS.