Нда, WhatsApp конечно подложил большую свинью своей распределенной инфраструктурой, скрытием cidr, отсутствием поддержки socks и кривым прокси, который по сообщениям многих может привести к бану VPS цензором после его запуска.
Самое забавное, что это не помешало РКН его забанить) Но при этом создает определенные трудности при попытке обойти ограничения. Бонусом идет то, что при открытии клиента по строке состояния не поймешь подключился он к сети или нет. Там тупо написано WhatsApp, при любом раскладе. В отличии от той же телеги, где если написано Telegram, значит точно подключено. WhatsApp мне особо не нужен, но нужен маме и паре коллег того же возраста, так что пришлось заморочиться.
Начнем с конца, как же определить что связь есть? Нужно найти контакт или пару контактов, у которых НЕ скрыто время их последнего визита. И вот если зайти в этот контакт (или в диалог с ним) и в статусе через какое то время всплывет “был(-а) тогда-то”, значит связь есть. Естественно искать такие контакты надо с включенным средством обхода пуская весь трафик WhatsApp (временно) в проксю. Ну либо в веб версии смотреть, я хз там пишется это или нет. С этим разобрались.
Так, что дальше. Дальше добавляем проксирование этих доменов (разумеется этого недостаточно). Как показала практика добавлять в прокси IP facebook или Meta (конкретно для WhatsApp) бесполезно и не имеет смысла (необходимые IP разрешаться из доменов выше). А вот дальше интереснее, судя по всему WhatsApp арендует сервера у Amazon, и, в зависимости от региона, стучится на определенные диапазоны его IP. Желающие могут ознакомиться с этим скромным списком ip-ranges.json. Я же поступал по другому, анализировал трафик гаджета когда у контакта (с открытым статусом) не было видно время последнего визита, находил IP адреса, которые шли в обходи прокси, затем находил их на ipinfo.io и если это Amazon брал самую большую его подсеть (куда попадал этот адрес) и добавлял в прокси. Затем проверял обновился ли статус у контакта. Если обновился - хорошо. Спустя какое то время статус опять пропадал (а он пропадет через день или два), повторял вышеуказанную процедуру. IP и подсеть уже были другие.
В итоге я пришел к вот такому списку для выходного IP в Западной Европе который и добавил в прокси.
Summary
#amazon ip for whatsapp
3.0.0.0/8
18.0.0.0/8
34.248.0.0/13
35.176.0.0/13
50.8.0.0/13
52.0.0.0/10
52.64.0.0/12
63.32.0.0/14
Одной из /8 , чтобы не искать и дробить на более мелкие, я захватил подсеть какого то университета в штатах (они ее с Amazon каким то образом делят), ну и хрен с ним.
В итоге сообщения приходят / уходят, как и медиа. Звонки не проверял (и не буду) такой задачи передо мной не стояло.
В принципе можно так и не париться и добавить все адреса Amazon с того же ipinfo в прокси (все равно он у нас забанен). Но я простых путей не ищу, ну и алгоритм действий описал, может кому понадобится;).