«Мой IP» на клиентской стороне

Бывает, что на стороне клиента надо узнать свой IP-адрес. Если не страшно подключать себе на страницу чужой JS, то это можно сделать следующим образом:
<!-- pure JS my IP -->
<script>
!function(callback) {
    var old = document.write;

    document.write = function (str) {
        var re = /(\d{1,3}\.){3}\d{1,3}/;

        callback(re.exec(str)[0]);
        document.write = old;
    }
}(alert);
</script>
<script src="http://en.dnstools.ch/out/4.js"></script>
Вместо «alert» можно передавать любую функцию, ей первым параметром будет передан искомый IP-адрес. Если на странице больше нигде не используется «document.write», то JS с внешнего ресурса вполне можно подключать как «defer», тут это нестрашно.
18 марта 2012 20:28

Stac (stacmv.ya.ru)
19 марта 2012, 08:20

Я знаю другое решение: написать в своем js-файле, пропущенном на сервере через SSI: var ip = '<!--#echo var="REMOTE_ADDR"-->'
Или проделать то же самое, но с использованием PHP.

bolk (bolknote.ru)
19 марта 2012, 09:29, ответ предназначен Stac (stacmv.ya.ru):

Это очевидное решение обладает очевидным недостатком: требует собственное серверной поддержки.

Дучик (doochik.ya.ru)
19 марта 2012, 10:29

http://internet.yandex.ru/

bolk (bolknote.ru)
19 марта 2012, 10:30, ответ предназначен Дучик (doochik.ya.ru):

Как получить эту информацию себе на сайт, в свой JS?

Ваше имя или адрес блога (можно OpenID):

Текст вашего комментария, не HTML:

Кому бы вы хотели ответить (или кликните на его аватару)