|
|
|
Попадание ip адреса в диапазон
|
|||
|---|---|---|---|
|
#18+
Всем привет. Может быть вопрос не в тот форум, но вдруг кто-то сталкивался с подобным. В mysql хранятся диапазоны айпишников, например: Код: plaintext 1. 2. 3. делаю запрос: Код: sql 1. при помощи inet_aton адреса переводятся в числа и в результате на выходе получаю две записи, т.е., что искомый айпи входит и в первый и во второй диапазоны. А по факту он принадлежит только "Город Х". Как правильно решать подобные штуки? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2016, 17:57 |
|
||
|
Попадание ip адреса в диапазон
|
|||
|---|---|---|---|
|
#18+
JulTА по факту он принадлежит только "Город Х". По-русски объясните по какому факту так вообще получилось? Второй диапазон ошибочен или что с ним? Нужно брать кратчайший диапазон или что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2016, 18:20 |
|
||
|
Попадание ip адреса в диапазон
|
|||
|---|---|---|---|
|
#18+
Ну в общем то, первый диапазон полностью попадает во второй. Т.ч. судя по Вашим исходным данным, ВСЕ ПРОСТО !!!! Первый город маленький, а второй - большой мегаполис. Понятно, что IP из Мтищи, одновременно входят и в Московскую область ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2016, 18:26 |
|
||
|
Попадание ip адреса в диапазон
|
|||
|---|---|---|---|
|
#18+
Интересно, какому городу принадлежат IP 192.168.*.* ))) Правильный подход - обратиться к поставщику исходных данных и спросить, по каким принципам они построены, как с ними работать. Лично я бы: 1) просто присвоил приоритет записям. Соответственно подсети с небольшой маской - имеют преимущество перед подсетями с большой маской. IMHO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2016, 18:31 |
|
||
|
Попадание ip адреса в диапазон
|
|||
|---|---|---|---|
|
#18+
BlazkowiczJulTА по факту он принадлежит только "Город Х". По-русски объясните по какому факту так вообще получилось? Второй диапазон ошибочен или что с ним? Нужно брать кратчайший диапазон или что? да, нужно брать кратчайший диапазон, но как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2016, 18:57 |
|
||
|
Попадание ip адреса в диапазон
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevИнтересно, какому городу принадлежат IP 192.168.*.* ))) Правильный подход - обратиться к поставщику исходных данных и спросить, по каким принципам они построены, как с ними работать. Лично я бы: 1) просто присвоил приоритет записям. Соответственно подсети с небольшой маской - имеют преимущество перед подсетями с большой маской. IMHO можно ли автоматически при занесении в базу как-то рассчитывать эти приоритеты? вот что в соседнем форуме посоветовали: http://www.sql.ru/forum/1220255-a/popadanie-ip-adresa-v-diapazon не вариант ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2016, 18:59 |
|
||
|
Попадание ip адреса в диапазон
|
|||
|---|---|---|---|
|
#18+
"Длину" диапазона посчитать же можете. Вот и берите наиболее короткие. IMHO Хотя от ошибок, если диапазоны пересекаются - это все равно Вас не спасет Да и вообще, не факт, что IP с каким-то конкретным городом связан. Вхожу через Мегафон из Ростова-на-дону, все сервера определяют как Краснодар (> 300 км) Просто потому, что скорее всего, там у Мегафона какой-то региональный центр. BlazkowiczНужно брать кратчайший диапазон или что? +1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2016, 19:03 |
|
||
|
Попадание ip адреса в диапазон
|
|||
|---|---|---|---|
|
#18+
JulT, ip определяются по провайдеру, а он может иметь регистрацию в одной области , а работать в нескольких других, поэтому не факт, что по ip можно узнать город. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2016, 20:13 |
|
||
|
Попадание ip адреса в диапазон
|
|||
|---|---|---|---|
|
#18+
Ясно. Всем спасибо за помощь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2016, 21:14 |
|
||
|
Попадание ip адреса в диапазон
|
|||
|---|---|---|---|
|
#18+
JulTБеру какой-нибудь айпи из города Город Х: 159.224.165.242 (сервис 2ip показывает принадлежность именно этому городу) делаю запрос: Код: sql 1. при помощи inet_aton адреса переводятся в числа и в результате на выходе получаю две записи, т.е., что искомый айпи входит и в первый и во второй диапазоны. А по факту он принадлежит только "Город Х". Как правильно решать подобные штуки? Спасибо! Тут ничего поделать нельзя. В базе действительно диапазоны перекрываются. Но если предположить что сетка X входит в Y тогда можно искать в порядке нарастающих длин диапазонов и брать первый сверху. Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2016, 23:15 |
|
||
|
Попадание ip адреса в диапазон
|
|||
|---|---|---|---|
|
#18+
maytonJulTБеру какой-нибудь айпи из города Город Х: 159.224.165.242 (сервис 2ip показывает принадлежность именно этому городу) делаю запрос: Код: sql 1. при помощи inet_aton адреса переводятся в числа и в результате на выходе получаю две записи, т.е., что искомый айпи входит и в первый и во второй диапазоны. А по факту он принадлежит только "Город Х". Как правильно решать подобные штуки? Спасибо! Тут ничего поделать нельзя. В базе действительно диапазоны перекрываются. Но если предположить что сетка X входит в Y тогда можно искать в порядке нарастающих длин диапазонов и брать первый сверху. Код: sql 1. 2. 3. Да, спасибо большое, так и сделала ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2016, 08:13 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39264117&tid=2123940]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
68ms |
get topic data: |
18ms |
get forum data: |
3ms |
get page messages: |
84ms |
get tp. blocked users: |
3ms |
| others: | 233ms |
| total: | 447ms |

| 0 / 0 |
