$_SERVER['REMOTE_ADDR']
может не на самом деле содержать реальные клиентские IP-адреса, поскольку это даст Вам адрес прокси для клиентов, соединенных через прокси, например. Это может быть тем, что Вы действительно хотите, тем не менее, зависящий что Ваше выполнение с дюйм/с. Чей-то частный адрес RFC1918 не может принести Вам пользы, если Вы, говорят, пытаясь видеть, где Ваш трафик порождает из или помнит, какой IP пользователь, в последний раз соединенный от, где общедоступный IP или шлюза NAT прокси мог бы быть более соответствующим хранилищу.
Существует несколько HTTP-заголовков как X-Forwarded-For
который может или не может быть установлен различными прокси. Проблема состоит в том, что это - просто HTTP-заголовки, которые могут быть установлены любым. Нет никакой гарантии об их содержании. $_SERVER['REMOTE_ADDR']
фактический физический IP-адрес, из которого веб-сервер получил соединение и что ответ будет отправлен в. Что-либо еще - просто произвольная и добровольная информация. Существует только один сценарий, которому можно доверять этой информации: Вы управляете прокси, который устанавливает этот заголовок. Значение, только если Вы знаете 100%, где и как заголовок был установлен, должно Вы учитывать его для чего-либо важного.
Однако вот некоторый пример кода:
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
Примечание редактора: Используя вышеупомянутый код имеет последствия безопасности. Клиент может установить всю Информацию заголовка HTTP (т.е. $_SERVER['HTTP_...
) к любому произвольному значению это хочет. Как таковой это намного более надежно для использования $_SERVER['REMOTE_ADDR']
, поскольку это не может быть установлено пользователем.
От: http://roshanbh.com.np/2007/12/getting-real-ip-address-in-php.html
В вашем SQL вы можете:
SET EXPLAIN ON;
Это будет действовать до тех пор, пока вы не отключите или не выполните эквивалентное OFF
] заявление. Работает, по крайней мере, до версии 7, может даже работать в версии 5. SELECT {+ EXPLAIN} foo, bar FROM ...
. Вы также можете использовать SELECT - + EXPLAIN \ n foo bar ...
в зависимости от точного синтаксиса вашего SQL (вы не можете закрыть комментарий - он длится до конца строки). Этот вариант действует только для этого оператора SELECT
. Где записывается файл объяснения, во многом зависит от ОС сервера базы данных. Это может быть домашний каталог вашего пользователя или каталог в $ INFORMIXDIR
.
Какая версия Informix?
Для [ SET EXPLAIN
] есть некоторая информация, относящаяся к v10.