- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
# Определение IP адреса
static public function ip() {
# Список возможных заголовков для получения ip адреса
$Sip = array();
$Sip['REMOTE_ADDR'] = getenv('REMOTE_ADDR');
$Sip['HTTP_FORWARDED_FOR'] = getenv('HTTP_FORWARDED_FOR');
$Sip['HTTP_X_FORWARDED_FOR'] = getenv('HTTP_X_FORWARDED_FOR');
$Sip['HTTP_X_COMING_FROM'] = getenv('HTTP_X_COMING_FROM');
$Sip['HTTP_VIA'] = getenv('HTTP_VIA');
$Sip['HTTP_XROXY_CONNECTION'] = getenv('HTTP_XROXY_CONNECTION');
$Sip['HTTP_CLIENT_IP'] = getenv('HTTP_CLIENT_IP');
$Sip['Unknow'] = '0.0.0.0';
# Выбор найденного ip адреса
if(isset($Sip['REMOTE_ADDR'])) {
$Rip = $Sip['REMOTE_ADDR'];
} else if(isset($Sip['HTTP_FORWARDED_FOR'])) {
$Rip = $Sip['HTTP_FORWARDED_FOR'];
} else if(isset($Sip['HTTP_X_FORWARDED_FOR'])) {
$Rip = $Sip['HTTP_X_FORWARDED_FOR'];
} else if(isset($Sip['HTTP_X_COMING_FROM'])) {
$Rip = $Sip['HTTP_X_COMING_FROM'];
} else if(isset($Sip['HTTP_VIA'])) {
$Rip = $Sip['HTTP_VIA'];
} else if(isset($Sip['HTTP_XROXY_CONNECTION'])) {
$Rip = $Sip['HTTP_XROXY_CONNECTION'];
} else if(isset($Sip['HTTP_CLIENT_IP'])) {
$Rip = $Sip['HTTP_CLIENT_IP'];
} else {
$Rip = '0.0.0.0';
}
# Валидация ip адреса
# Получение из секций массив
$ARip = explode( '.', $Rip );
# Пересборка ip адреса
$RARip = array(0 => NULL, 1 => NULL, 2 => NULL, 3 => NULL);
for($n = 0; $n < 10; $n++) {
$RARip[0] .= isset( $ARip[0]{$n} ) ? $ARip[0]{$n} : NULL;
$RARip[1] .= isset( $ARip[1]{$n} ) ? $ARip[1]{$n} : NULL;
$RARip[2] .= isset( $ARip[2]{$n} ) ? $ARip[2]{$n} : NULL;
$RARip[3] .= isset( $ARip[3]{$n} ) ? $ARip[3]{$n} : NULL;
}
$BRip = substr( (int) $RARip[0], 0, 3 ) . '.' . substr( (int) $RARip[1], 0, 3 ) . '.' . substr( (int) $RARip[2], 0, 3 ) . '.' . substr( (int) $RARip[3], 0, 3 );
# Возвращение пересобранного ip адреса
return $BRip;
}
Не столько — «Г», сколько — «Извращение»...
Улыбнуло имя переменной — $Rip;
А раньше этот код был суровее — exit( $string ); в случаи не соответствия...