Определение своего внешнего IP-адреса
Как определить внешний IP-адрес, через который ваш хост выходит в Интернет? Очень просто! – Сейчас полно сервисов, отвечающих на этот вопрос, например можно зайти по ссылке , и методом пристального взгляда узреть свой IP крупным планом.
А как быть безглазому и безмозглому скрипту? – А практически так же! - С помощью компонента ActiveX «Microsoft.XMLHTTP» сформировать HTTP-запрос к той же странице , а затем найти искомое в ответе веб-сервера. При поиске зачастую достаточно трюка с сигнатурами, заключающегося в анализе исходного для страницы HTML-кода и определении уникальной последовательности текста до искомых данных и после них. Таким образом, веб-страница представляется в виде:
<html>—-прочее—-<Signature-1>ДАННЫЕ<Signature-2>—-прочее—-</html>
А далее функция split, преобразующая строки в массив, за 2 вызова вычленит требуемую информацию. При первом вызове разделителем членов массива указывается <Signature-1>:
A=split(strHTML,”<Signature-1>”)
В результате получается массив из 2 элементов:
-
A(0)= “<html>—-прочее—-“
-
A(1)= “ДАННЫЕ<Signature-2>—-прочее—-</html>”
Вторым вызовом split преобразует в массив строку A(1), здесь разделителем будет уже <Signature-2>:
B=split(A(1),”<Signature-2>”)
В результате опять получается массив из 2 элементов, и первый из них (с индексом=0) содержит искомые данные:
-
B(0)= “ДАННЫЕ“
-
B(1)= “—-прочее—-</html>”
Буквально минуты анализа исходного HTML-кода страницы хватает, чтобы найти эти сигнатуры. Это обрамляющие IP-адрес теги <big> и </big>, больше они нигде не встречаются.
Итоговый скрипт extip.vbs:
on error resume next
set xml=createObject(”Microsoft.XMLHTTP”)
xml.open “GET”, “http://2ip.ru”, false
xml.send
if (Err.Number=0) then
WScript.echo trim(split(split(xml.responseText,”<big>”)(1),”</big>”)(0))
else
Err.clear
end if
Есть пара скользких моментов:
-
Первый связан со значительным редизайном на веб-сервере - иногда приходится корректировать сигнатуры и скрипт. Некоторое время назад, например, IP-адрес на этой странице обрамлялся другими тегами <font color=”#0033FF”> и </font>
-
Второй имеет отношение к антивирусам. Некоторые из них очень агрессивно относятся к использованию компонента Microsoft.XMLHTTP в скриптах.



Оставьте свой отзыв