1. Aleksej - 08 Января, 2005 - 11:38:35 - перейти к сообщению
Можно ли при помощи JavaScript определить текущий IP-авдрес компьютера? И если да, то как?
2. Анна - 08 Января, 2005 - 12:27:49 - перейти к сообщению
Aleksej
Насколько я знаю, в JS нет такой нормальной возможности, да еще всегда работающей.
Пусть меня поправят, если я не права.
Все, что мне лично удалось найти, это все какие-то жалкие попытки с результатом: Your IP address is 127.0.0.1
Так что ИМХО тут лкчше обойтись таким вариантом.. JS перенаправлят юзера куда-нить, где перлом или пхп определяется IP, после чего юзер перенаправляется назад.
Вот, например:
Насколько я знаю, в JS нет такой нормальной возможности, да еще всегда работающей.
Пусть меня поправят, если я не права.
Все, что мне лично удалось найти, это все какие-то жалкие попытки с результатом: Your IP address is 127.0.0.1
Так что ИМХО тут лкчше обойтись таким вариантом.. JS перенаправлят юзера куда-нить, где перлом или пхп определяется IP, после чего юзер перенаправляется назад.
Вот, например:
CODE:
<script language="JavaScript" src="http://script-made.fatal.ru/ip/remotejs.cgi"></script>
3. Aleksej - 08 Января, 2005 - 14:55:52 - перейти к сообщению
Да, так можно. А тот сервер он всегда рабочий? Просто это ведь не мой хост и его могут ликвидировать.
4. Анна - 08 Января, 2005 - 19:05:05 - перейти к сообщению
Aleksej
Не знаю. Просто в нете набрела на эту ссылку.
Вот тут: http://script-made.by.ru/
Цитата:
А тот сервер он всегда рабочий?
Не знаю. Просто в нете набрела на эту ссылку.
Вот тут: http://script-made.by.ru/
5. Aleksej - 09 Января, 2005 - 02:59:41 - перейти к сообщению
А про какие функции ты говорила, которые не всегда правильно работают? Дай их названия, интересно посмотреть.
6. Анна - 09 Января, 2005 - 03:19:39 - перейти к сообщению
Aleksej
Не говорила про функции..
А вообще, что-то крайне мало информации на этот счет .
Вот, могу сказать, что еще прочитала…
Ссылку не даю, т.к. не есть гуд давать ссылки на другие форумы. Цитировать бы и то не стала, если б смогла найти в сети нечто более конкретное.
Еще, кстати, наш штатный JS-маньяк не объявлялся.
Не говорила про функции..
А вообще, что-то крайне мало информации на этот счет .
Вот, могу сказать, что еще прочитала…
Цитата:
все это может быть отрезано локальными установками безопасности. Если повезет, то возможны разные подходы для IE и NS.
Общее замечание два: на компе могут быть установлены несколько адаптеров, и каждый из них может иметь более одного IP. Как узнать, который из них внешний - отдельная тема. (см. протокол IP). Вариант для IE показывает, как добраться до каждого из них. Вот он:
Попутно, советую почитать подробнее тут. Этой штуковиной можно "добраться" не только до IP, но, практически, до чего угодно - хоть до температуры отдельного процессора
Вариант для NS я не тестил, но ИМХО, должно работать. Вот он:
Общее замечание два: на компе могут быть установлены несколько адаптеров, и каждый из них может иметь более одного IP. Как узнать, который из них внешний - отдельная тема. (см. протокол IP). Вариант для IE показывает, как добраться до каждого из них. Вот он:
CODE:
<script>
try {
var strIPs = new String(""); //init result buffer
var strErrorMsg = new String();
try {
var objLocator = new ActiveXObject("WbemScripting.SWbemLocator"); //get locator
var objService = objLocator.ConnectServer("","root\\cimv2"); //connect
objService.Security_.impersonationlevel = 3; //impersonate - security level 3
var strQry = "select IPAddress from Win32_NetworkAdapterConfiguration Where IPEnabled = True"; //query text
var objEnum = new Enumerator(objService.ExecQuery(strQry)); //query adapters, get enumeration
while( !objEnum.atEnd() ) // enumerate adapters
{
obj = objEnum.item(); //current item
for (var i = 0; i <= obj.IPAddress.ubound();i++) //iterate IPs of current adapter
{
if (strIPs != "")
strIPs += "|"; //delimit IPs in string with pipe
strIPs += obj.IPAddress(i); //append current IP
} //<- for
objEnum.moveNext(); //enumerate next item
}//<- while
} catch (e) {
strErrorMsg = e.description; //store possible error
};
} finally {
//display results
if (strIPs != "")
alert("IPs found: " + strIPs)
else
alert(":( " + strErrorMsg);
}
</script>
<script>
try {
var strIPs = new String(""); //init result buffer
var strErrorMsg = new String();
try {
var objLocator = new ActiveXObject("WbemScripting.SWbemLocator"); //get locator
var objService = objLocator.ConnectServer("","root\\cimv2"); //connect
objService.Security_.impersonationlevel = 3; //impersonate - security level 3
var strQry = "select IPAddress from Win32_NetworkAdapterConfiguration Where IPEnabled = True"; //query text
var objEnum = new Enumerator(objService.ExecQuery(strQry)); //query adapters, get enumeration
while( !objEnum.atEnd() ) // enumerate adapters
{
obj = objEnum.item(); //current item
for (var i = 0; i <= obj.IPAddress.ubound();i++) //iterate IPs of current adapter
{
if (strIPs != "")
strIPs += "|"; //delimit IPs in string with pipe
strIPs += obj.IPAddress(i); //append current IP
} //<- for
objEnum.moveNext(); //enumerate next item
}//<- while
} catch (e) {
strErrorMsg = e.description; //store possible error
};
} finally {
//display results
if (strIPs != "")
alert("IPs found: " + strIPs)
else
alert(":( " + strErrorMsg);
}
</script>
Попутно, советую почитать подробнее тут. Этой штуковиной можно "добраться" не только до IP, но, практически, до чего угодно - хоть до температуры отдельного процессора
Вариант для NS я не тестил, но ИМХО, должно работать. Вот он:
CODE:
<script>
try{
var ip = new java.net.InetAddress.getLocalHost();
var ipStr = new java.lang.String(ip);
//alert(ipStr.substring(ipStr.indexOf("/")+1));
alert("IPs found: " + ipStr);
} catch(e){
alert(":( " + e.description);
}
</SCRIPT>
try{
var ip = new java.net.InetAddress.getLocalHost();
var ipStr = new java.lang.String(ip);
//alert(ipStr.substring(ipStr.indexOf("/")+1));
alert("IPs found: " + ipStr);
} catch(e){
alert(":( " + e.description);
}
</SCRIPT>
Ссылку не даю, т.к. не есть гуд давать ссылки на другие форумы. Цитировать бы и то не стала, если б смогла найти в сети нечто более конкретное.
Еще, кстати, наш штатный JS-маньяк не объявлялся.
7. Alfa - 09 Января, 2005 - 03:51:43 - перейти к сообщению
Анна пишет:
Насколько я знаю, в JS нет такой нормальной возможности, да еще всегда работающей.
Я тоже так думаю, знаю что на рнр это так делается:
CODE:
<?php
echo " " . $_SERVER["REMOTE_ADDR"];
?>
<?php
echo " " . $_SERVER["REMOTE_ADDR"];
?>
И это точно сработает!
8. TvoyWeb - 09 Января, 2005 - 16:55:58 - перейти к сообщению
Alfa пишет:
И это точно сработает!
Не всегда. Есть еще
CODE:
$_SERVER['HTTP_X_FORWARDED_FOR']
$_SERVER['HTTP_PROXY_USER']
$_SERVER['HTTP_PROXY_USER']
9. Aleksej - 10 Января, 2005 - 03:33:12 - перейти к сообщению
Анна
Тот код, что ты привела не работает \n\n(Добавление)
А вот ссылка http://hacsoft.net.ru/ip.php
Его я и буду испольщовать (это мой сайт и он будет существовать вечно! - проблем не будет!)
Тот код, что ты привела не работает \n\n(Добавление)
А вот ссылка http://hacsoft.net.ru/ip.php
Его я и буду испольщовать (это мой сайт и он будет существовать вечно! - проблем не будет!)
10. TvoyWeb - 10 Января, 2005 - 04:29:18 - перейти к сообщению