Проверка местоположения прокси серверов

Передо мной появилась задача – определить геоположение прокси , а так же чек ip адреса. Статические прокси сервера , не требуют определения внешнего ip адреса, т.к. мы его видим в самом прокси.  У меня же задача стояла – определение этих параметров на динамических мобильных прокси. 

 

Так же решение должно было соответствовать минимальным требованиям:
- массовая проверка прокси;
- безопасность чека, данные не должны сливаться;
- простота использования.

 

После поиска прокси чекера , пришёл к выводу что ни один из найденных не соответствуют моим требования.

 

Было решено написать скрипт bash в среде линукс с использованием сервиса ipinfo.io

 

Выводные данные для каждого прокси:
- ip адрес;
- ASN (уникальный номер автономной системы провайдера);
- провайдер;
- город.

 

Первым делом регистрируемся в сервисе ipinfo.io , получаем токен. Бесплатная версия позволяет делать 50к запросов в месяц, этого предостаточно.

 

Создаём скрипт checkip.sh

 

Я использую текстовый редактор nano
nano checkip.sh

 

Открываетм конфиг и вставляем следующее содержимое

 

#!/bin/sh
mv ip.list ip.list.old
n=1
token=*******

for i in `cat proxy.list`; do
CUR1=`curl -s --connect-timeout 5 --proxy $i ipinfo.io/ip`
CUR2=`curl -s --connect-timeout 5 --proxy $i -u $token: ipinfo.io/org`
CUR3=`curl -s --connect-timeout 5 --proxy $i -u $token: ipinfo.io/city`
echo "$n ${CUR1} ${CUR2} ${CUR3}" >> ip.list
((n+=1))
done


укажем свой токен

Сохраняем скрипт и даём ему права на исполнение скрипта
chmod +x checkip.sh
Создаём документ proxy.list и вставляем прокси для чека в формате login:pass@ip:port в столбик.

 

Всё что нам останется сделать, это запустить скрипт
bash checkip.sh

 

Все данные будут импортироваться в файл ip.list примерно следующего содержания:
1             176.59.4.11 AS15378 T2 Mobile LLC Centralniy
2             217.118.92.139 AS16345 Public Joint Stock Company Vimpel-Communications St Petersburg
3             217.118.92.143 AS16345 Public Joint Stock Company Vimpel-Communications St Petersburg
4             31.173.80.42 AS25159 PJSC MegaFon Moscow
5             31.173.86.215 AS25159 PJSC MegaFon Moscow
6             31.173.84.239 AS25159 PJSC MegaFon Moscow
7             31.173.87.6 AS25159 PJSC MegaFon Moscow
8             31.173.80.231 AS25159 PJSC MegaFon Moscow



P.S. Как определяет местоположения яндекс и думаю не только он...