11 / 10 / 2
Регистрация: 06.08.2021
Сообщений: 468
|
|||||||||||
1 | |||||||||||
Как получить IPv418.07.2022, 11:06. Показов 1141. Ответов 13
Метки нет (Все метки)
Мне нужно в сохранять IPv4 клиентов.
По
Теперь около 30% клиентов используют IPv6
но как проверить какой IP пришел? Заранее всем спасибо за помощь!
0
|
18.07.2022, 11:06 | |
Ответы с готовыми решениями:
13
Как получить TCP-псевдозаголовок IPv4 в net.socet? Как получить IPv4 своей физической сетевой карты, исключая прочие виртуальные адаптеры vmware, hyperv и т.д? Напишите программу, которая считывает IPv4 адрес и проверяет ее валидность. Форма записи IPv4 адреса – x.x.x.x Получить IPv4-адрес и использовать его в качестве аргумента для команды NETSH Как работает Multicast в IPv4? |
14 / 9 / 11
Регистрация: 10.09.2012
Сообщений: 933
|
||||||
18.07.2022, 11:16 | 2 | |||||
Как вариант
1
|
11 / 10 / 2
Регистрация: 06.08.2021
Сообщений: 468
|
|
18.07.2022, 12:35 [ТС] | 3 |
юрьич, Спасибо! Пробую.
Добавлено через 14 минут Сорри, я ошибся, нужна ф-ция inet_pton для преобразования из IPv6 в IPv4. Подсунул IPv6 в inet_pton и получил 6 групп нечитаемых символов, разделенных 0x3F В IPv6 у меня 8 групп и должно быть на выходе 4.
0
|
11 / 10 / 2
Регистрация: 06.08.2021
Сообщений: 468
|
|||||||||||
20.07.2022, 14:57 [ТС] | 4 | ||||||||||
Перепробовал много различных вариантов, не получилось ничего.
Получается не правильный IPv4, хотя форма правильная. Прислали вот такой скрипт:
Возвращает IPv4 как мне нужно. Если просто набрать , то возвращает IPv6. Как это сделано и сам их скрипт найти не удалось. Хотелось бы этот или подобный скрипт иметь у себя. Кто знает, что ещё придумают за океаном. Вообще, можно ли средствами PHP получить правильный IPv4 из IPv6? Напр. этот
0
|
14 / 9 / 11
Регистрация: 10.09.2012
Сообщений: 933
|
|
20.07.2022, 15:34 | 5 |
0
|
11 / 10 / 2
Регистрация: 06.08.2021
Сообщений: 468
|
|
20.07.2022, 15:41 [ТС] | 6 |
юрьич, но как-то получают на сайте ipify.
Искал также через mysql и тоже правильный не удалось получить.
0
|
14 / 9 / 11
Регистрация: 10.09.2012
Сообщений: 933
|
|
20.07.2022, 16:02 | 7 |
Ну так тоже целый сервис работает. И там скорее всего в основном js и ещё хз что. И у них скорее всего технология не перевода, о отсеивания. Там своя магия). Вы понимаете, что v6 на несколько порядков больше чем v4. Это совсем другая технология. На сколько я понимаю). Вам нужно наверное смотреть в сторону поддержки v6
0
|
11 / 10 / 2
Регистрация: 06.08.2021
Сообщений: 468
|
|
20.07.2022, 19:58 [ТС] | 8 |
юрьич,
Я не проверял, информация из сети v4 - 2**64 v6 - 2*128 - в 10-чной форме 18 разрядов js серверный должен быть. С PHP не получилось, смотрю MySQL
0
|
168 / 124 / 42
Регистрация: 25.10.2019
Сообщений: 476
|
|
20.07.2022, 23:07 | 9 |
Это две разные технологии без обратной совместимости. Преобразовать нельзя.
Банально ipv6 = 2^128 = 340 282 366 920 938 463 463 374 607 431 768 211 456 адресов Вики а ipv4 IPv4 обеспечивает возможность адресации 2^32 или приблизительно 4,3 миллиарда адресов (та же статья вики) Это означает, что на подавляющем большинстве ipv6 не существует преобразования. И если клиенты перешли на эту технологию непосредственно - так и будет. В остальных случаях это лишь вариация подключения из-за доступности. Путь преобразования - тупиковый. всего лишь ~2% ipv4 входят в этот диапазон Нужно искать другой метод. Возможно получится JS'ом вынуждать клиента подключиться по ip4.
0
|
11 / 10 / 2
Регистрация: 06.08.2021
Сообщений: 468
|
|
21.07.2022, 07:33 [ТС] | 10 |
Вероятно, вычисляют и возвращают IP провайдера только, мне бы этого хватило, но только чтобы не брать информацию с чужого сервера, который находится за океаном. Вопрос остается, зачем тогда нужна inet_pton и что она возвращает на самом деле? В описании сказано, что она преобразует ipv6 в ipv4. Ещё с десяток готовых примеров нашлось, согласно одного мой ip 10.0.0.1(PHP-скрипт находился на сервере, не на локальном компьютере!!!), я тут же открыл яндекс и вбил мой ip и получил правильную информацию.
Разве не провайдер даёт такое подключение? Серверными JS скриптами не приходилось пользоваться, ASP(VS) пользовались довольно долго, пока хозяин хостинга не потребовал отказаться, т.к. антивирус обзывал вирусом любой VS с напр. копированием файла. Перешли на PHP.
0
|
168 / 124 / 42
Регистрация: 25.10.2019
Сообщений: 476
|
|
21.07.2022, 08:24 | 11 |
Ничего подобного,
( string $ip ) : string|false Эта функция конвертирует читаемый IPv4- или IPv6-адрес (если PHP был собран с поддержкой IPv6) в адрес, соответствующий 32-битной или 128-битной бинарной структуре.[/I] Т.е. или-или. Вы придаёте слишком большое значение слову "конвертирует". Да, оно есть, но тут имеется ввиду другое представление вида|типа данных, а не приведение к другой технологии. Яблоко можно конвертировать в пюре/салат/сок и т.д., но его нельзя конвертировать в автомобиль. Верно. Но ipv4 в данный момент - основная технология. Поэтому ipv6 - опционально может использоваться, а может и нет. Именно поэтому можно принудить клиента к ipv4 на скриптах. т.к. включены по умолчанию оба. ipv6 в этом случае просто приоритет подключения. Но если выдан только ip6 и проведены соответствующие настройки. Или если шлюз имеет только ip6 - вы с этим ничего не сделаете. Для каких целей вообще собираются Ip?, мне кажется вы идете не в ту сторону. Нет никаких директив, которые были ли бы применены к ip4, но не к ip6. Похоже на шлюз. Это не ваш случай.
0
|
11 / 10 / 2
Регистрация: 06.08.2021
Сообщений: 468
|
||||||
21.07.2022, 12:06 [ТС] | 12 | |||||
Ищу варианты, пока не вижу.
Заказчик хочет знать статистику, из каких стран и сколько раз к нему заходили. Также храню адресную строку, т.к. в адресную строку пытались всунь скрипт и даже не через прокси заходили. В сети в свободном доступе гуляет iptocountry.sql, с ip4. С ip6 закрытая информация. Хотя существуют сайты, напр. этот где есть все необходимое. Вытянуть можно оттуда, но через js скрипт, а он не хочет, т.к. js скрипт легко заменяется в отладчике. Пробовал
Да. Роутер у меня 10.0.0.138 и 10.0.0.1 это мой десктоп.
0
|
168 / 124 / 42
Регистрация: 25.10.2019
Сообщений: 476
|
|
21.07.2022, 12:39 | 13 |
Сообщение было отмечено Николай_4657 как решение
Решение
Ip6 запросто отслеживается
Если отправляете запрос с сервера - не заменяется. Работать можно с этим http://ip-api.com/json/2a00:f940:4::8 А еще я бы задумался над целесообразностью всем мер "если". (Я предполагаю) что у вас обычный рядовой ресурс. Видели мемы ворот в чистом поле?) сейчас это выглядит так. ибо получить адреса можно и из стандартных логов. Не вижу причин, почему так нельзя делать, если в итоге вы получаете корректные данные Отсюда всё вполне корректно работает.(просто нашел в гугле) таких ресурсов масса http://ip-api.com/json/2a00:f940:4::8
1
|
11 / 10 / 2
Регистрация: 06.08.2021
Сообщений: 468
|
||||||
21.07.2022, 14:01 [ТС] | 14 | |||||
websyst_ru, Спасибо!!! Подсунул IPv6 как параметр
Сейчас чуть изменю таблицу и скрипт. Заказчик необычный. Читает книжки для самых крутых хакеров от Фленова и враги кругом. На самом деле, были попытки взлома. В адресную строку и поля инпут пытались скрипты подсунуть. Я быстренько вставил проверку и по их ip делаю редирект на сайт 18+ Ещё раз спасибо! Добавлено через 52 минуты websyst_ru, Насчет сайта конвертацией IPv6 в IPv4. Проверил на сайте Как я и подозревал, дают IP провайдера, я попробовал пару цифр заменить в IPv6, IPv4 получил тот же самый, иначе просто невозможно.
0
|
21.07.2022, 14:01 | |
21.07.2022, 14:01 | |
Помогаю со студенческими работами здесь
14
Как настроить ipv4 на vps.me? Как заставить Socket работать и с IPv4, и с IPv6? как в пакете найти признаки протоколов ipv4 и ipv6? Как изменить IP DNS-сервера в окне свойства протокола (TCP/IPv4)? IPv4 Калькулятор Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |