HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > Общие вопросы программирования
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 02.08.2020, 17:22
Tema05
Познавший АНТИЧАТ
Регистрация: 05.10.2019
Сообщений: 1,649
С нами: 3477805

Репутация: 168


По умолчанию

Есть 3 значения с ip: $_SERVER['HTTP_CLIENT_IP'], $_SERVER['HTTP_X_FORWARDED_FOR'], $_SERVER['REMOTE_ADDR'].

Хотел бы узнать что лучше использовать для идентификации пользователя?

Правильность получение ip мне не важна, главное чтобы он у всех был разный и не менялся со временем.

Также есть ли смысл юзать такой код?

PHP:





Код:

 
Ответить с цитированием

  #2  
Старый 03.08.2020, 17:13
Royan_Millans
Участник форума
Регистрация: 04.08.2017
Сообщений: 144
С нами: 4618120

Репутация: 98
По умолчанию

Правильным решением будет $_SERVER['REMOTE_ADDR'] (потому что остальные заголовки можно подменить вручную), а меняться он так и так может, если у человека динамический ip.
 
Ответить с цитированием

  #3  
Старый 07.08.2020, 10:30
Livarka
Участник форума
Регистрация: 27.08.2017
Сообщений: 143
С нами: 4584912

Репутация: 83
По умолчанию

Цитата:
Сообщение от Tema05  

Есть 3 значения с ip: $_SERVER['HTTP_CLIENT_IP'], $_SERVER['HTTP_X_FORWARDED_FOR'], $_SERVER['REMOTE_ADDR'].
Хотел бы узнать что лучше использовать для идентификации пользователя?
Правильность получение ip мне не важна, главное чтобы он у всех был разный и не менялся со временем.

Также есть ли смысл юзать такой код?

PHP:





Код:


Есть, это более точный показ IP
 
Ответить с цитированием

  #4  
Старый 25.08.2020, 21:59
SCHWEITZER
Участник форума
Регистрация: 28.06.2020
Сообщений: 103
С нами: 3094002

Репутация: 48
По умолчанию

Цитата:
Сообщение от butchers  

Есть, это более точный показ IP
Нет, я уже лично объяснял все это автору вопроса раз 100, не меньше.

Человек выше абсолютно прав -- все остальные заголовки, кроме REMOTE_ADDR можно спокойно подменить. Код, который выложил автор - пабликовый, им пользуются миллионы новичков, но так и не понимают, что это бесполезно. Более того, в PHP категорически нельзя юзать игнорирование ошибок (
Код:
@
) - это может привести к катастрофическому фризу.

Чтобы увидеть пруфы слов выше, достаточно перейти в
Код:
/etc/nginx/fastcgi.conf
(если Вы не ньюфаг и у Вас стоит NGINX).

Там будет такая строка:

NGINX:





Код:
fastcgi_param
REMOTE_ADDR
$remote_addr
;


Код:
fastcgi_param
- думаю, понятно, что это параметры для работы FCGI и PHP.

Код:
REMOTE_ADDR
- название переменной.

Код:
$remote_addr
- значение переменной.

Код:
$remote_addr
- это внутренняя-дефолтная переменная NGINX, как раз в ней хранится IP-адрес клиента. Соответственно, если запрос поступает на *file*.php, NGINX запустит PHP-процесс через FCGI с параметрами из
Код:
fastcgi.conf
, но в этом конфиге имеется только ОДНА ПЕРЕМЕННАЯ ДЛЯ ОПРЕДЕЛЕНИЯ IP-АДРЕСА И ЕЕ НЕВОЗМОЖНО ПОДДЕЛАТЬ.

Вот. На счет апача - не думаю, что его кто-то юзает. Если хостинг - вся та же самая картина, хостинг не будет менять дефолтный
Код:
REMOTE_ADDR
на какой нибудь
Код:
X_REAL_REALNO_REALNIY_IP_CLIENTA_TRUE_PRAVDA
.

Вот.
 
Ответить с цитированием

  #5  
Старый 26.08.2020, 01:39
Tema05
Познавший АНТИЧАТ
Регистрация: 05.10.2019
Сообщений: 1,649
С нами: 3477805

Репутация: 168


По умолчанию

Цитата:
Сообщение от MMXVII  

Нет, я уже лично объяснял все это автору вопроса раз 100, не меньше.

Человек выше абсолютно прав -- все остальные заголовки, кроме REMOTE_ADDR можно спокойно подменить. Код, который выложил автор - пабликовый, им пользуются миллионы новичков, но так и не понимают, что это бесполезно. Более того, в PHP категорически нельзя юзать игнорирование ошибок (
Код:
@
) - это может привести к катастрофическому фризу.

Чтобы увидеть пруфы слов выше, достаточно перейти в
Код:
/etc/nginx/fastcgi.conf
(если Вы не ньюфаг и у Вас стоит NGINX).
Там будет такая строка:

NGINX:





Код:
fastcgi_param
REMOTE_ADDR
$remote_addr
;


Код:
fastcgi_param
- думаю, понятно, что это параметры для работы FCGI и PHP.

Код:
REMOTE_ADDR
- название переменной.

Код:
$remote_addr
- значение переменной.

Код:
$remote_addr
- это внутренняя-дефолтная переменная NGINX, как раз в ней хранится IP-адрес клиента. Соответственно, если запрос поступает на *file*.php, NGINX запустит PHP-процесс через FCGI с параметрами из
Код:
fastcgi.conf
, но в этом конфиге имеется только ОДНА ПЕРЕМЕННАЯ ДЛЯ ОПРЕДЕЛЕНИЯ IP-АДРЕСА И ЕЕ НЕВОЗМОЖНО ПОДДЕЛАТЬ.

Вот. На счет апача - не думаю, что его кто-то юзает. Если хостинг - вся та же самая картина, хостинг не будет менять дефолтный
Код:
REMOTE_ADDR
на какой нибудь
Код:
X_REAL_REALNO_REALNIY_IP_CLIENTA_TRUE_PRAVDA
.

Вот.
Канешно спасибо за объяснение, но тема уже давно не актуальна. Я и забыл о ней.
 
Ответить с цитированием

  #6  
Старый 26.08.2020, 02:39
SCHWEITZER
Участник форума
Регистрация: 28.06.2020
Сообщений: 103
С нами: 3094002

Репутация: 48
По умолчанию

Цитата:
Сообщение от Tema05  

Канешно спасибо за объяснение, но тема уже давно не актуальна. Я и забыл о ней.
Больше, чем уверен -- ты бы еще раз задал такой же вопрос. Надеюсь, все доходчиво объяснил.
 
Ответить с цитированием

  #7  
Старый 26.08.2020, 10:21
Tema05
Познавший АНТИЧАТ
Регистрация: 05.10.2019
Сообщений: 1,649
С нами: 3477805

Репутация: 168


По умолчанию

Цитата:
Сообщение от MMXVII  

Больше, чем уверен -- ты бы еще раз задал такой же вопрос. Надеюсь, все доходчиво объяснил.
В этот раз он остался в истории, так что я могу ещё раз это прочитать.
 
Ответить с цитированием

  #8  
Старый 27.08.2020, 18:00
Hatrig
Познающий
Регистрация: 23.05.2013
Сообщений: 38
С нами: 6826908

Репутация: 73
По умолчанию

Добавлю к текущим ответам. Сам для получения IP адреса пользователя использую - $_SERVER['REMOTE_ADDR'] .

Однако, возможно ты столкнешься с работой с Cloudflare, на этот случай используй - $_SERVER["HTTP_CF_CONNECTING_IP"] .
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема

Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.