Как узнать CIDR или маску подсети по голому ip адресу?
У меня есть сайт на php. Я могу получить ip адрес пользователя, посетившего сайт с помощью $_SERVER["REMOTE_ADDR"]. Как мне узнать CIDR или маску подсети, в которой находится данный айпи? Если бы я делал это руками, я бы открыл один из сайтов, которые предоставляют информацию об ip адресах, и там бы посмотрел диапазон или CIDR. Но можно ли это проделать как-то в коде без парсинга одного из таких сайтов? Или по крайней мере укажите, каким сайтом будет лучше всего воспользоваться, чтобы постоянно отправлять туда кучу запросов на определение CIDR.
В гугле я нахожу только, как по известному cidr определить маску подсети или как по маске подсети определить адрес сети. В том то и проблема, что у меня нет ни cidr, ни маски.
Чей диапазон, пардон? Диапазон подсети, которую получил провайдер? И что с этого? Из этой сети он может /30 продать одному клиенту, /30 другому и /28 третьему. И за каждым адресом там может быть контора с сотней рыл.
Зачем?
CityCat4, Я не знал о таких деталях) Я подумал, что cidr, указанный на одном из таких сайтов может относиться только к конкретному городу и провайдеру и при этом отдаваться только физическим лицам. Если есть источники, где об этом больше рассказывается, буду рад, если вы их предоставите :)
kogotag, https://ru.wikipedia.org/wiki/NAT
Дк еще клиенты, особенно физики могу быть за NAT.
Причём выходной шлюз может находится совершенно в другом регионе.
Так я наблюдал на Tele2, находясь в одном городе, мне всегда по GeoIP интернет магазины ставили не верный город))
Kenny00, Юрики тоже за NAT тусят сотнями. Завод какой-нибудь, например. А уж физики, да у мобильных провайдеров - там их толпы, причем они там постоянно меняются :)
kogotag, Ну щас. Это маска зоны выделенной провайдеру. У провайдера обычно больше одной сети, и сети могут быть зело крупными. А как он их раздаст - это его дело. И даже вот у нас сеть от провайдера есть - /28. И никто кроме меня не знает, как мы ее используем ;)
Максимум - можно получить сведения о диапазоне, в который входит целевой IP, по учётным данным регистратора. Но вот как выделенный диапазон порезал его арендатор, и в какой подсети находится целевой адрес, определить в общем случае невозможно.
Если нерешаемо в общем случае, то меня интересуют любые годные приближения решения. Задача более менее ограничивается собиранием статистики на посещение сайта пользователями. Просто к итоговому числу хочется также добавить число незалогиненных пользователей (зарегистрированных, но не вошедших в свой аккаунт)
Например, сейчас достаточно модны всякоразные прокси и прочие випиэны - именно их адрес и будет получен вместо реального адреса посетителя. Ну кроме прозрачных проксей, которые куда как менее массовы.
Ну или технология NAT, которую используют практически все провайдеры и подавляющее большинство организаций - тут вместо реального адреса посетителя будет получен адрес внешнего интерфейса NAT-маршрутизатора. К слову, было время, когда через один внешний адрес могли выходит в Инет куда как более тысячи абонентов..
Так что лучше выбросите эту идею из головы. Совсем. Ну или сделайте, но оставьте эту статистику только для себя, и никому про её даже не рассказывайте. Ладно если просто засмеют, а если это человек, который принимает решения, и он это сделает на основании Вашего гадания на кофейной гуще?