Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Определение географии ip адреса

Сообщения:  [1-10]   [11-15] 

 
 автор: Саня   (24.04.2009 в 16:28)   письмо автору
 
   для: sochinec   (24.04.2009 в 15:20)
 

У вас ошибка в этой строке $ip[] = array('start' => ip2long('62.183.50.0'), 'end' => ip2long(62.183.50.255), 'where' => 'Краснодар');, которая перекочевала из моего примера.

  Ответить  
 
 автор: Саня   (24.04.2009 в 16:26)   письмо автору
 
   для: Trianon   (24.04.2009 в 13:56)
 

.

  Ответить  
 
 автор: Trianon   (24.04.2009 в 15:24)   письмо автору
 
   для: sochinec   (24.04.2009 в 15:20)
 

У вас даже подсвечены адреса по-разному.

  Ответить  
 
 автор: sochinec   (24.04.2009 в 15:20)   письмо автору
 
   для: Саня   (24.04.2009 в 13:39)
 

Не пойму почему мне пишет
Parse error: syntax error, unexpected T_DNUMBER in Z:\home\test1.ru\www\1111111111.php on line 4

<?php
$ip 
= array(); 
// диапазон 1 
$ip[] = array('start' =>  ip2long('62.183.50.0'), 'end' => ip2long(62.183.50.255), 'where' => 'Краснодар'); 
// диапазон 2 

// диапазон N 

$curr ip2long($_SERVER['REMOTE_ADDR']); 
foreach ( 
$ip as $range ) { 
  if ( 
$curr >= $range['start'] && $curr <= $range['end'] ) { 
    print 
'Погодп в г. '.$range['where']; 
    break; 
  } 
}
?>

  Ответить  
 
 автор: Trianon   (24.04.2009 в 13:56)   письмо автору
 
   для: Саня   (24.04.2009 в 13:39)
 

ip2long() возвращает целый результат (со знаком), а значит сравнение в диапазонах из верхней половины пространства адресов нужно будет выполнить отдельно:
if ( $curr >= $range['start'] && $curr <= $range['end'] 
  || $curr >= $range['end'] && $curr <= $range['start'] ) {

  Ответить  
 
 автор: sochinec   (24.04.2009 в 13:54)   письмо автору
 
   для: Саня   (24.04.2009 в 13:31)
 

Спасибо!

  Ответить  
 
 автор: Саня   (24.04.2009 в 13:39)   письмо автору
 
   для: sochinec   (22.04.2009 в 14:06)
 

<?
$ip 
= array();
// диапазон 1
$ip[] = array('start' =>  ip2long('62.183.50.0'), 'end' => ip2long(62.183.50.255), 'where' => 'Краснодар');
// диапазон 2
$ip[] = ...;
// диапазон N

$curr ip2long($IP-адрес-посетителя);
foreach ( 
$ip as $range ) {
  if ( 
$curr >= $range['start'] && $curr <= $range['end'] ) {
    print 
'Погодп в г. '.$range['where'];
    break;
  }
}

  Ответить  
 
 автор: Саня   (24.04.2009 в 13:31)   письмо автору
 
   для: sochinec   (22.04.2009 в 14:06)
 

<?
$ip 
= array();
// диапазон 1
$ip[] = array('start' =>  ip2long('62.183.50.0'), 'end' => ip2long(62.183.50.255), 'where' => 'Краснодар');
// диапазон 2
$ip[] = ...;
// диапазон N

$curr ip2long($IP-адрес-посетителя);
foreach ( 
$ip as $range ) {
  if ( 
$curr >= $range['start'] && $curr <= $range['end'] ) {
    print 
'Погодп в г. '.$range['where'];
    break;
  }
}

  Ответить  
 
 автор: sochinec   (22.04.2009 в 14:06)   письмо автору
 
   для: Саня   (22.04.2009 в 09:22)
 

Все я союрал все ip адреса, а теперь как мне использовать диапазон адресов,
как мне обьяснить скрипту чтобы он именно из этого пула выдавал пагоду.
Там очень много адресов получилось.

  Ответить  
 
 автор: sochinec   (22.04.2009 в 11:31)   письмо автору
 
   для: Саня   (22.04.2009 в 09:22)
 

Спасибо, это самый действенный способ!

  Ответить  

Сообщения:  [1-10]   [11-15] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования