Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Попадание ip адреса в диапазон / 7 сообщений из 7, страница 1 из 1
28.06.2016, 18:17
    #39264108
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Попадание ip адреса в диапазон
В mysql хранятся диапазоны айпишников, например:
Код: plaintext
1.
2.
id         ip_from                  ip_to              city
2	159.224.2.11	159.224.165.255    Город Х
3	77.1.1.0	        160.224.185.255    Город Y
Беру какой-нибудь айпи из города Город Х: 159.224.165.242 (сервис 2ip показывает принадлежность именно этому городу)
делаю запрос:
Код: sql
1.
SELECT * FROM test.ip_range where inet_aton('159.224.165.242') between inet_aton(ip_from) and inet_aton(ip_to);


при помощи inet_aton адреса переводятся в числа и в результате на выходе получаю две записи, т.е., что искомый айпи входит и в первый и во второй диапазоны. А по факту он принадлежит только "Город Х". Как правильно решать подобные штуки? Спасибо!
...
Рейтинг: 0 / 0
28.06.2016, 18:25
    #39264116
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Попадание ip адреса в диапазон
JulTна выходе получаю две записи, т.е., что искомый айпи входит и в первый и во второй диапазоны.Так он реально входит в оба этих диапазона.

JulTпо факту он принадлежит только "Город Х".Из чего следует простой вывод - у тебя данные косячные.

JulTКак правильно решать подобные штуки?Избавиться от некорректных исходных данных в таблицах.
...
Рейтинг: 0 / 0
28.06.2016, 18:59
    #39264140
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Попадание ip адреса в диапазон
AkinaJulTна выходе получаю две записи, т.е., что искомый айпи входит и в первый и во второй диапазоны.Так он реально входит в оба этих диапазона.

JulTпо факту он принадлежит только "Город Х".Из чего следует простой вывод - у тебя данные косячные.

JulTКак правильно решать подобные штуки?Избавиться от некорректных исходных данных в таблицах.
а как же если:
Первый город маленький, а второй - большой мегаполис. Понятно, что IP из Мтищи, одновременно входят и в Московскую область
...
Рейтинг: 0 / 0
28.06.2016, 19:13
    #39264146
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Попадание ip адреса в диапазон
AkinaИз чего следует простой вывод - у тебя данные косячные.На мой взгляд, в тупых диапазонах всё довольно мутно. Вероятно, следует использовать наиболее узкий диапазон из найденных. Конечно, если база в целом актуальна. Для сравнения, если пробить айпи через whois и получить три различных диапазона:
$ whois 159.224.165.242

#
# ARIN WHOIS data and services are subject to the Terms of Use
# available at: https://www.arin.net/whois_tou.html
#
# If you see inaccuracies in the results, please report at
# https://www.arin.net/public/whoisinaccuracy/index.xhtml
#


#
# The following results may also be obtained via:
# https://whois.arin.net/rest/nets;q=159.224.165.242?showDetails=true&showARIN=false&showNonArinTopLevelNet=false&ext=netref2
#

NetRange: 159.224.0.0 - 159.224.255.255
CIDR: 159.224.0.0/16
NetName: RIPE-ERX-159-224-0-0
NetHandle: NET-159-224-0-0-1
Parent: NET159 (NET-159-0-0-0-0)
NetType: Early Registrations, Transferred to RIPE NCC
OriginAS:
Organization: RIPE Network Coordination Centre (RIPE)
RegDate: 2010-11-03
Updated: 2010-11-17
Comment: These addresses have been further assigned to users in
Comment: the RIPE NCC region. Contact information can be found in
Comment: the RIPE database at http://www.ripe.net/whois
Ref: https://whois.arin.net/rest/net/NET-159-224-0-0-1

ResourceLink: https://apps.db.ripe.net/search/query.html
ResourceLink: whois.ripe.net

OrgName: RIPE Network Coordination Centre
OrgId: RIPE
Address: P.O. Box 10096
City: Amsterdam
StateProv:
PostalCode: 1001EB
Country: NL
RegDate:
Updated: 2013-07-29
Ref: https://whois.arin.net/rest/org/RIPE

ReferralServer: whois://whois.ripe.net
ResourceLink: https://apps.db.ripe.net/search/query.html

OrgTechHandle: RNO29-ARIN
OrgTechName: RIPE NCC Operations
OrgTechPhone: +31 20 535 4444
OrgTechEmail: hostmaster@ripe.net
OrgTechRef
: https://whois.arin.net/rest/poc/RNO29-ARIN

OrgAbuseHandle: ABUSE3850-ARIN
OrgAbuseName: Abuse Contact
OrgAbusePhone: +31205354444
OrgAbuseEmail: abuse@ripe.net
OrgAbuseRef
: https://whois.arin.net/rest/poc/ABUSE3850-ARIN


#
# ARIN WHOIS data and services are subject to the Terms of Use
# available at: https://www.arin.net/whois_tou.html
#
# If you see inaccuracies in the results, please report at
# https://www.arin.net/public/whoisinaccuracy/index.xhtml
#



Найдено перенаправление на whois.ripe.net.

% This is the RIPE Database query service.
% The objects are in RPSL format.
%
% The RIPE Database is subject to Terms and Conditions.
% See http://www.ripe.net/db/support/db-terms-conditions.pdf

% Note: this output has been filtered.
% To receive output for a database update, use the "-B" flag.

% Information related to '159.224.165.0 - 159.224.165.255'

% Abuse contact for '159.224.165.0 - 159.224.165.255' is 'noc@triolan.com'

inetnum: 159.224.165.0 - 159.224.165.255
netname: TRIOLAN
descr: Kiev , Troeshina
country: UA
admin-c: KID3-RIPE
tech-c: KEV19-RIPE
status: ASSIGNED PA
mnt-by: BOMASC-MNT
created: 2011-09-22T14:58:43Z
last-modified: 2014-11-06T08:41:01Z
source: RIPE

person: Evgeniy V Kolesnikov
address: Natalia Uzhviy 112
address: Khakov
address: Ukraine
phone: +380 720 17 28
abuse-mailbox: ripe_box@yahoo.com
mnt
-by: MNT-DJEN
nic-hdl: KEV19-RIPE
created: 2002-07-26T15:56:17Z
last-modified: 2014-12-10T06:45:14Z
source: RIPE # Filtered

person: Konstantin I Doljenko
address: Komandarma Korka 10
address: Kharkov
address: Ukraine
phone: +380 572 179727
fax-no: +380 572 191510
abuse-mailbox: ripe_box@yahoo.com
nic
-hdl: KID3-RIPE
mnt-by: BOMASC-MNT
created: 2001-10-26T13:13:43Z
last-modified: 2013-11-07T06:00:15Z
source: RIPE # Filtered

% Information related to '159.224.164.0/22AS13188'

route: 159.224.164.0/22
descr: Kiev, Troyeshchyna
origin: AS13188
mnt-by: BOMASC-MNT
created: 2012-06-14T13:13:30Z
last-modified: 2012-06-14T13:13:30Z
source: RIPE

% This query was served by the RIPE Database Query Service version 1.87.4 (DB-1)

...
Рейтинг: 0 / 0
28.06.2016, 20:44
    #39264228
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Попадание ip адреса в диапазон
JulTа как же если:
Первый город маленький, а второй - большой мегаполис. Понятно, что IP из Мтищи, одновременно входят и в Московскую областьА что "как же"? ну входит... и если у тебя именно такие данные считаются правильными (вместо того, чтобы построить нормальное адресное дерево) - то учись правильно ставить задачу, у тебя с этим явно проблемы. нужно было сформулировать дополнительное условие - из нескольких диапазонов нужно получить самый "тощий". Что очевидно делается дополнительным
Код: sql
1.
ORDER BY inet_aton(ip_from) - inet_aton(ip_to) LIMIT 1



Кстати, тормозить будет нещадно. Вот нахрена ты хранишь IP строкой? храни числом, запросы взлетят. А для вывода форматируй в строку, используя INET_NTOA().
...
Рейтинг: 0 / 0
28.06.2016, 21:18
    #39264248
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Попадание ip адреса в диапазон
Akina,
Что досталось в наследство, то и имеем. Спасибо за помощь
...
Рейтинг: 0 / 0
29.06.2016, 11:58
    #39264564
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Попадание ip адреса в диапазон
Akinaнужно было сформулировать дополнительное условие - из нескольких диапазонов нужно получить самый "тощий". Что очевидно делается дополнительным

А зачем вообще ему это адресное дерево, если дерева ни у кого нет? У вас на странице http://internet.yandex.ru/ разве показывается дерево? Нет, показывается один конкретный город.
Так что в базе скорее всего можно совсем переделать записи.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Попадание ip адреса в диапазон / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]