Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получение IP адреса, Один и тотже IP показывает 
:(
    Опции темы
NNaarreekk
Дата 30.7.2007, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 768
Регистрация: 23.6.2007
Где: Армения

Репутация: 0
Всего: 3



Код

<?
function _tst_ip($env)
{
    if (($ip = getenv($env)) === false) return false;
    $i = ip2long($ip);
    if ($i === false || $i == -1 || $i == 0) return false;
    // RFC 1819
    // Class A: 10.0.0.0 - 10.255.255.255
    // Class B: 172.16.0.0 - 172.31.255.255
    // Class C: 192.168.0.0 - 192.168.255.255
    $a = ($i >> 24) & 0xFF;
    $b = ($i >> 16) & 0xFFFF;
    if (($a == 0x0A) || ($b == 0xC0A8) ||
            ($b >= 0xAC10 && $b <= 0xAC1F)) return false;
    return $ip;
}

function get_ip()
{
    if (($ip = _tst_ip('HTTP_CLIENT_IP')) !== false) return $ip;
    if (($ip = _tst_ip('HTTP_X_FORWARDED_FOR')) !== false) return $ip;
    if (($ip = _tst_ip('HTTP_X_FORWARDED')) !== false) return $ip;
    if (($ip = _tst_ip('HTTP_FORWARDED_FOR')) !== false) return $ip;
    if (($ip = _tst_ip('HTTP_FORWARDED')) !== false) return $ip;
    return $_SERVER['REMOTE_ADDR'];
}

$xxx=get_ip();
echo $xxx;
?>


Есть такой код!

В прицыпе не плохой код но, у меня на работе лоцальная сеть есть и на всех компах один и тотже IP!

От чего же так скажите пожалуста?
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-

Если так надо то как мы скажем в голосованиях можем отдельно участвовать?
PM MAIL WWW   Вверх
Fally
Дата 30.7.2007, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 17.8.2006
Где: Dahla

Репутация: 3
Всего: 4



А ты не пробывал на каждом из компов в сети выполнить команду ipconfig и посмотреть, какие у них внутренние и внешние IP??


--------------------
Прежде чем задать вопрос на форуме воспользуйтесь поиском.
user posted image
user posted image
PM MAIL   Вверх
NNaarreekk
Дата 30.7.2007, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 768
Регистрация: 23.6.2007
Где: Армения

Репутация: 0
Всего: 3



Цитата(Fally @ 30.7.2007,  13:07)
А ты не пробывал на каждом из компов в сети выполнить команду ipconfig и посмотреть, какие у них внутренние и внешние IP??

Может конечно я туповат, но ни слова ни понял из вышетобоюсказонного (хорошее слово я выдумал smile).....

Но если чтото ни так, то в других сайтах тоже должны быть IP одинаковыми, что ни так....

То есть пришли к противаречию!

Это сообщение отредактировал(а) NNaarreekk - 30.7.2007, 15:34
PM MAIL WWW   Вверх
Rezzonans
Дата 30.7.2007, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 21.4.2005

Репутация: нет
Всего: нет



Код


<?

function get_ip()
{

$err = "Sorry, Ip don't fined";

    if ($_SERVER['REMOTE_ADDR'] !== false)
     {
         return $_SERVER['REMOTE_ADDR'];
     }else{
         return $err;
     }

}

$xxx=get_ip();
echo $xxx;
?>



Вот так попробуй. А то функция твоя - явный велосипед smile

Добавлено через 4 минуты и 20 секунд
или вот так ещё можно:
Код


<?

function get_ip()
{

$err = "Sorry, Ip don't fined";

    if ($_SERVER['REMOTE_ADDR'] !== false)
     {

         return $_SERVER['REMOTE_ADDR'];

     }else if( $_SERVER['HTTP_X_FORWARDED'] !== false )
     {

         return $_SERVER['HTTP_X_FORWARDED'];

     }else{

         return $err;

     }

}

$xxx=get_ip();
echo $xxx;
?>


--------------------
Первый детектор лжи был собран из ребра мужчины. Впрочем, до сих пор, никаких изменений не притерпел
PM MAIL   Вверх
Flashdown
Дата 30.7.2007, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 27.5.2006
Где: Москва

Репутация: нет
Всего: нет



Цитата(NNaarreekk @ 30.7.2007,  11:38)
у меня на работе лоцальная сеть есть и на всех компах один и тотже IP!

От чего же так скажите пожалуста?

ты сам то вообще понял что спросил? это мы чтоль знать должны почему у тебя на работе айпишники одинаковые?))
PM MAIL ICQ   Вверх
sTa1kEr
Дата 30.7.2007, 18:35 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 56
Всего: 146



Цитата(Rezzonans @  30.7.2007,  16:08 Найти цитируемый пост)
А то функция твоя - явный велосипед smile

Вообще-то функция NNaarreekk достаточно грамотная, т.к. проверяется валидность IP, а так-же заголовки, которые может заполнять Proxy-сервер.

NNaarreekk
Цитата(NNaarreekk @  30.7.2007,  11:38 Найти цитируемый пост)
    $a = ($i >> 24) & 0xFF;
    $b = ($i >> 16) & 0xFFFF;
    if (($a == 0x0A) || ($b == 0xC0A8) ||
            ($b >= 0xAC10 && $b <= 0xAC1F)) return false;

Эти строчки исключают локальные IP адреса, что очень правильно для внешних internet серверов, но совершенно не годится в вашем случае. Т.к., на сколько я понял, нужны именно локальные IP для внутри-сетевого сайта. По этому если прокси-сервер действительно используется, то этот скрипт пропустит локальные IP. Попробуйте за комментировать эти строчки.

Так же, один и тот же IP может быть если для доступа к серверу, на котором расположен этот скрипт, используется NAT-маршрутизация или прокси сервер анонимный. Увы, в этом случае ничего сделать не удастся (разве что подойти к сисадмину и высказать ему все что вы о нем думаете smile).

Цитата(Rezzonans @  30.7.2007,  16:08 Найти цитируемый пост)
$err = "Sorry, Ip don't fined";

+1 smile А как это правильно перевести? Что-нибудь вроде "Извините, IP не становится прекрасным"? smile


Это сообщение отредактировал(а) sTa1kEr - 30.7.2007, 18:35
PM MAIL   Вверх
gambit
Дата 30.7.2007, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: нет
Всего: 40



Цитата(Flashdown @  30.7.2007,  16:46 Найти цитируемый пост)
Цитата(NNaarreekk @ 30.7.2007,  11:38)
Цитата

у меня на работе лоцальная сеть есть и на всех компах один и тотже IP!

От чего же так скажите пожалуста?

ты сам то вообще понял что спросил? это мы чтоль знать должны почему у тебя на работе айпишники одинаковые?))


 smile Ребята может я чегото не понял, но объясните КАК в сети могут быть одинаковые ip???  smile 
Это один большой конфликт.
PM MAIL ICQ Skype   Вверх
NNaarreekk
Дата 31.7.2007, 01:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 768
Регистрация: 23.6.2007
Где: Армения

Репутация: 0
Всего: 3



gambit  когда пишу echo $_SERVER['REMOTE_ADDR'];

С всех компов одно и тоже показывает:-(
PM MAIL WWW   Вверх
sTa1kEr
Дата 31.7.2007, 06:05 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 56
Всего: 146



Цитата(gambit @  30.7.2007,  21:33 Найти цитируемый пост)
Ребята может я чегото не понял, но объясните КАК в сети могут быть одинаковые ip???   
Это один большой конфликт. 

Смысл не в том, что IP у всех одинаковые, а в том, что на сервер все пакеты приходят с одним и тем же исходным IP. Это может быть, как я уже сказал, при использовании прокси сервера или NAT
Цитата

Суть механизма состоит в замене обратного (source) адреса при прохождении пакета в одну сторону и обратной замене адреса назначения (destination) в ответном пакете.


NNaarreekk, сделайте дамп всех серверных заголовков и поищите там наличие одного из заголовков 'HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_FORWARDED', 'HTTP_VIA'. Если ни один из них не присутствует, то тогда буде проблематично определить IP.
PM MAIL   Вверх
Rezzonans
Дата 31.7.2007, 08:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 21.4.2005

Репутация: нет
Всего: нет



Цитата
+1  А как это правильно перевести? Что-нибудь вроде "Извините, IP не становится прекрасным"? 


это вам +1 про прекрасный ip. Я, хотя, ещё тот мудрец в английском (и знаю, что написано с ошибкой), но до такого не додумался smile Хотел написать извините, ип не найден, но к, несчастью, из головы вылетело слово found, так что получилось нечто вроде извените ип оштрафован. Ну а профункцию: просто раньше программировал на перле, в котором достучаться до переменных окружения можно через небезизвестный массив $ENV. Когда с такой задачкой сталкивался впервые нашёл мануал, в котором было сказано, что ип адрес можно найти в переменной окружения под названием REMOTE_ADDR, в случае использования проксисервера существует переменная HTTP_X_FORWARDED, в которой может содержаться название проксисервера. Мне как-то этого обычно хватало. Вообщем-то таким же путём просто можно бы было проверить и все остальные переменные, думаю это очевидно. Опять таки нет мудрежа с локальными ип
--------------------
Первый детектор лжи был собран из ребра мужчины. Впрочем, до сих пор, никаких изменений не притерпел
PM MAIL   Вверх
NNaarreekk
Дата 31.7.2007, 12:01 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 768
Регистрация: 23.6.2007
Где: Армения

Репутация: 0
Всего: 3



Захожу на этот форум и стыдно становится с людми разговаривать(чуствую себя полным дебилом)!

sTa1kEr, а как это дамп сделать? smile 
PM MAIL WWW   Вверх
Golda
Дата 31.7.2007, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 26.3.2007
Где: Ариель, Израиль

Репутация: 20
Всего: 42



print_r($_SERVER);


--------------------
"For every problem, there exists a simple and elegant solution which is absolutely wrong." -- J. Wagoner, U.C.B. Mathematics
PM MAIL   Вверх
NNaarreekk
Дата 31.7.2007, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 768
Регистрация: 23.6.2007
Где: Армения

Репутация: 0
Всего: 3



Golda, спасибо всю жизнь благодарен тебе буду(если конечно поможет smile )
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0562 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.