|
|
|
| Здравствуйте.
У меня задача сделать определение юзеров по региону.
У меня сайт узкой направленности и заходят на него с трех регионов России
Краснодарский край, Ставропольский Край, и Ростовская Область.
Все ip адреса этих регионов определяются соответственно в записи netname: при проверке, как KRASNODAR-REGION-NETWORK, ROSTOV-DONPAC-NET и STAVROPOl-DONPAC-NET.
Как мне сделать чтобы я смог различать их, и выводить им соотвтствующюю пагоду ( но это я смогу сделать), главное как определить.
Пробовал сохранять сайт функцией file_get_contents("http://www.nic.ru/whois/?query=$ip");
И искать в нем строковыми функциями, но ничего не получилось. | |
|
|
|
|
|
|
|
для: sochinec
(20.04.2009 в 11:24)
| | Проверяйте IP-адреса.
Вот диапазоны адресов:
KRASNODAR-REGION-NETWORK - 62.183.50.0 - 62.183.50.255
ROSTOV-DONPAC-NET - 80.254.114.0 - 80.254.114.255
Сети STAVROPOl-DONPAC-NET не существует. Проверьте правильность написания. Есть просто STAVROPOL - 195.210.180.220 - 195.210.180.223 | |
|
|
|
|
|
|
|
для: Саня
(20.04.2009 в 11:53)
| | Я так и сделал первый раз, но диапазонов намного больше.
83.239.96.0 - 83.239.111.255 KRASNODAR-REGION-NETWORK
85.172.32.0 - 85.172.63.255 KRASNODAR-REGION-NETWORK
85.173.0.0 - 85.173.31.255 KRASNODAR-REGION-NETWORK
85.175.0.0 - 85.175.255.255 KRASNODAR-REGION-NETWORK
Вот сколько, и это не предел. | |
|
|
|
|
|
|
|
для: sochinec
(20.04.2009 в 12:10)
| | А ели воспользоваться сервисом 2ip.ru ? | |
|
|
|
|
|
|
|
для: sochinec
(20.04.2009 в 12:10)
| | Идёте на http://www.ripn.net:8080/nic/whois/. Вводите во вторую форму "KRASNODAR-REGION-NETWORK" и переписываете все диапазорны, принадлежащие этой сети. Я насчитал 14 диапазонов для KRASNODAR-REGION-NETWORK. | |
|
|
|
|
|
|
|
для: Саня
(22.04.2009 в 09:22)
| | Спасибо, это самый действенный способ! | |
|
|
|
|
|
|
|
для: Саня
(22.04.2009 в 09:22)
| | Все я союрал все ip адреса, а теперь как мне использовать диапазон адресов,
как мне обьяснить скрипту чтобы он именно из этого пула выдавал пагоду.
Там очень много адресов получилось. | |
|
|
|
|
|
|
|
для: 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;
}
}
|
| |
|
|
|
|
|
|
|
для: Саня
(24.04.2009 в 13:39)
| | ip2long() возвращает целый результат (со знаком), а значит сравнение в диапазонах из верхней половины пространства адресов нужно будет выполнить отдельно:
if ( $curr >= $range['start'] && $curr <= $range['end']
|| $curr >= $range['end'] && $curr <= $range['start'] ) {
|
| |
|
|
|
|
|
|
|
для: Trianon
(24.04.2009 в 13:56)
| | . | |
|
|
|
|
|
|
|
для: Саня
(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;
}
}
?>
|
| |
|
|
|
|
|
|
|
для: sochinec
(24.04.2009 в 15:20)
| | У вас даже подсвечены адреса по-разному. | |
|
|
|
|
|
|
|
для: sochinec
(24.04.2009 в 15:20)
| | У вас ошибка в этой строке $ip[] = array('start' => ip2long('62.183.50.0'), 'end' => ip2long(62.183.50.255), 'where' => 'Краснодар');, которая перекочевала из моего примера. | |
|
|
|