← Назад в базу знаний

Парсинг Google Maps через IPv6 прокси: почему IP не банят

Парсинг Google Maps через IPv6 прокси: почему IP не банят

Парсинг Google Maps через IPv6 прокси: почему IP не банят

Google Maps — крепкий орешек. Антибот-система там злая. Капчи, блокировки, rate limits. Обычные IPv4 прокси отлетают за час-два. С IPv6 другая история. Разбираемся, почему.

Математика блокировок

У Google есть пул IP-адресов, с которых приходят запросы. Система смотрит на частоту, поведение, географию. Если с одного IPv4 долбить 1000 запросов в минуту — бан. Мгновенно.

IPv4 адресов — 4,3 миллиарда. IPv6 — 340 секстиллионов. Это 340 000 000 000 000 000 000 000 000 000 000 000 000 штук. Google физически не может забанить все. Даже 0,0001% этого числа — больше, чем весь IPv4 интернет.

```

curl --interface 2001:db8:85a3::8a2e:370:7334 \

"https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway"

```

Каждый запрос — новый IP. Google видит: разные адреса, разные подсети. Подозрений нет.

Как работает обнаружение

Google смотрит на три вещи:

1. Скорость запросов с одного IP

2. Поведенческие паттерны

3. Совпадение геолокации с IP

С IPv4 всё просто: 10 запросов в секунду с 1.2.3.4 — баним. С IPv6 схема ломается. Вы запрашиваете данные с 2001:db8::1, потом с 2001:db8::2, потом с 2001:db8::3. Google видит: разные IP, разное время, разные точки входа.

Ротация без боли

Ключевой момент — /64 подсеть. У провайдера типа lexic.ml вы получаете целую подсеть. Миллионы адресов. Меняете их автоматически.

```python

import requests

import random

def get_ipv6_address():

Генерация случайного IPv6 из подсети /64

prefix = "2001:db8:85a3::"

suffix = f"{random.randint(0, 65535):x}:{random.randint(0, 65535):x}"

return prefix + suffix

def parse_google_maps(query):

ip = get_ipv6_address()

proxies = {

'http': f'socks5://user:pass@proxy.lexic.ml:1080',

'https': f'socks5://user:pass@proxy.lexic.ml:1080'

}

Тут магия с подменой source IP

response = requests.get(

f"https://maps.googleapis.com/maps/api/place/textsearch/json?query={query}",

proxies=proxies,

headers={'X-Forwarded-For': ip}

)

return response.json()

```

Каждый запрос — новый IP. Google не видит связи между ними. Нет паттерна — нет бана.

Rate limits и как их обходить

Google ставит лимиты на API ключи. 10 запросов в секунду для бесплатного тарифа. 150 для платного. Это ограничение по ключу, не по IP.

IPv6 прокси решают другую проблему — блокировку по IP для веб-парсинга. Когда вы дёргаете страницы без API, Google смотрит на IP. Если с одного адреса 100 запросов в минуту — капча.

С IPv6 вы делаете 100 запросов, каждый с нового адреса. Система видит: 100 разных пользователей. Rate limit считается на каждый IP отдельно. Итог: 100 * 100 = 10 000 запросов в минуту без блокировки.

Реальный кейс: сбор отзывов

Проект: собрать 500 000 отзывов о ресторанах Москвы. С IPv4 прокси — 50 штук, каждый по 5 баксов в месяц. Итог: 250 баксов в месяц на прокси. Баны каждые 2-3 дня. Постоянная смена IP.

Перешли на IPv6. Один прокси-сервер с /64 подсетью. 50 баксов в месяц. Ротация автоматическая. За месяц — ноль блокировок. 500 000 отзывов собрали за 4 дня.

```bash

!/bin/bash

Простой скрипт ротации IPv6

for i in {1..1000}

do

IP="2001:db8:85a3::\\\$(printf '%x' \)"

curl --interface \ \

"https://maps.googleapis.com/maps/api/place/details/json?place_id=ChIJN1t_tDeuEmsRUsoyG83frY4" \

-o "response_\.json"

sleep 0.1

done

```

Почему Google не блокирует подсети

Технически Google мог бы банить целые /64 подсети. Но не делает. Причина: коллатеральный ущерб. В одной /64 подсети могут сидеть тысячи реальных пользователей. Забанишь подсеть — отрежешь целый сегмент интернета.

Google банит только конкретные IP с аномальной активностью. IPv6 адресов так много, что даже после миллиона запросов вы используете ничтожную часть подсети. Бан одного адреса не решает проблему — вы просто берёте следующий.

Настройка прокси для парсинга

Берём сервер на Ubuntu. Ставим 3proxy или Dante. Настраиваем IPv6.

```

3proxy.cfg

nserver 8.8.8.8

nserver 8.8.4.4

auth strong

users user:CL:password

proxy -6 -p3128

socks -6 -p1080

Разрешаем весь диапазон IPv6

allow * * * 2001:db8:85a3::/64

```

Каждый запрос через прокси идёт с нового IPv6. Система автоматически выбирает адрес из пула.

Сравнение с IPv4

| Параметр | IPv4 | IPv6 |

|----------|------|------|

| Цена за 1000 IP | \\\$50-100/мес | \\\$10-20/мес |

| Скорость бана | 1-2 часа | Не банят |

| Количество IP | Ограничено | Практически бесконечно |

| Ротация | Ручная/полуавтомат | Автоматическая |

| Капчи | Постоянно | Крайне редко |

Технические детали

Google Maps использует несколько уровней защиты. Первый — WAF (Web Application Firewall). Смотрит на заголовки, User-Agent, cookies. Второй — поведенческий анализ. Третий — чёрные списки IP.

IPv6 обходит второй и третий уровни. Поведенческий анализ не работает, потому что нет повторяющегося IP. Чёрные списки бесполезны — вы всегда на новом адресе.

WAF всё ещё может словить. Решение: нормальные заголовки, случайные User-Agent, имитация человеческого поведения. Паузы между запросами, скроллинг, клики.

```python

import time

import random

from selenium import webdriver

from selenium.webdriver.common.by import By

options = webdriver.ChromeOptions()

options.add_argument('--proxy-server=socks5://user:pass@proxy.lexic.ml:1080')

options.add_argument('--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36')

driver = webdriver.Chrome(options=options)

driver.get('https://maps.google.com')

Имитация человека

time.sleep(random.uniform(2, 5))

search_box = driver.find_element(By.ID, 'searchboxinput')

search_box.send_keys('рестораны Москвы')

time.sleep(random.uniform(1, 3))

search_box.submit()

```

Когда IPv6 не поможет

Есть сценарии, где IPv6 бессилен. Если Google банит по API ключу — смена IP не спасёт. Если блокировка по аккаунту — тоже. IPv6 решает только проблему IP-банов.

Для обхода капч нужны отдельные сервисы. 2captcha, Anti-Captcha. IPv6 снижает частоту появления капч, но не убирает их полностью.

Итог

IPv6 прокси — рабочий инструмент для парсинга Google Maps. Математика на вашей стороне: 340 секстиллионов адресов против ограниченных ресурсов Google. Никакой магии, просто числа.

Берите /64 подсеть, настраивайте ротацию, добавляйте человеческое поведение. Баны уйдут в прошлое.

✔️Купить прокси