Логика работы скрипта: Задаём Tor как прокси, после чего переходим на сайт проверки, получаем ip. Если такой IP ещё не использовали сохраняем его в файл. Если же Ip уже использовали, то c помощью команд из bat файла перезапускаем TOR для получения нового IP и следом перезапускаем программу со скриптом, для использования нового IP.
При Перезапуске Tor всегда меняет свой IP.
Версия программы: Human Emulator Studio 7.0.44.
Код скрипта:
// /////////////////// настройки ///// // файл с последним ip $last_ip_file='data/last_ip.txt'; // задаём tor в качестве прокси $cur_proxy = "socks5://127.0.0.1:9150"; // путь к tor $path_tor='C:\\tor browser new\Tor Browser\Browser\firefox.exe'; // ////////////////////////////////////// // последний используемый ip $last_ip = ''; if($file_os->is_exist($last_ip_file)) $last_ip=$textfile->read_file($last_ip_file); // устанвливаем прокси на все соединения $browser->enable_proxy("",$cur_proxy); sleep(3); // получаем ip // сайт проверки ip http://api.ipify.org/ $browser->navigate("http://api.ipify.org/"); $cur_ip=$pre->get_inner_text_by_number(0); // проверим получили ли ip if($cur_ip=='') { echo "не получили ip. Проверьте работает ли тор.<br>"; $app->quit(); } echo "текущий ip: $cur_ip, последний используемый был $last_ip<br>"; // проверяем с предыдущим используемым if($cur_ip!=$last_ip) { $last_ip = $cur_ip; $textfile->write_file($last_ip_file, $last_ip); } else { // перезапускаем echo("перезапускаем тор для получения нового ip<br>"); $app->run_as_bat("taskkill /f /im tor.exe /t\ntaskkill /f /im firefox.exe /t\nTIMEOUT /T 2\nstart \"\" \"".$path_tor."\"","1.bat",false); sleep(10); echo "перезапускаем программу для получения нового ip<br>"; // перезапускаем программу $app->restart($debug->get_cur_script_path(),$app->get_port(),$app->get_port()); }