[Сделано]Разные ip для разных сайтов



  • @support said in Разные ip для разных сайтов:

    Есть у меня идея сделать разные настройки заголовков, прокси, и данных браузера для разных сайтов или вкладок

    Я давно хотел предложить эту идею) У себя пока сделал так:

    function BASExtended() {
    
    }
    
    BASExtended.prototype.setProfile = function (profile) {
        BE.profile = profile;
        reset()!
        if (BE.profile.userAgent) {
            agent(BE.profile.userAgent)! 
        }
        if (BE.profile.proxy) {
            proxy(BE.profile.proxy)!
        }
        if ((BE.profile.cookies && (typeof (BE.profile.cookies) === 'object'))) {
            restore_cookies(JSON.stringify(BE.profile.cookies))!
        }
        resize(BE.profile.resolution.w, BE.profile.resolution.h)!
    };
    
    BE = new BASExtended();
    BE.setProfile({
            proxy: false,
            userAgent: 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:52.0) Gecko/20100101 Firefox/52.0',
            cookies: false,
            resolution: {w: 800, h: 600}
        });
    

  • administrators

    @blackhacker

    Асинхронные функции не будут работать в if, нужно оборачивать в специальный _if



  • @support да, я писал код еще до того, как узнал все тонкости api. Но он все равно работает, правда мой подход не совсем правильный (получается каша из асинхронных функций, они не выполнятся в нужном порядке), но перед загрузкой страницы все равно успевают выполниться. Вчера переделал правильный вариант

    function BASExtended() {
    this.isLog = false;
    }
    BASExtended.prototype.log = function (msg) {
        if (BE.isLog) {
            log(msg);
        }
    };
    BASExtended.prototype.callAsyncFunct = function () {
        var tmp = _arguments();
        var args = [];
        var funct = tmp.shift();
        var code = '';
        for (var i = 0; i < tmp.length; i++) {
            eval('var arg_' + i + '=tmp[i]');
            args.push('arg_' + i);
        }
        var asyncFunct = null;
        if (typeof (funct) === 'function') {
            code = 'asyncFunct = function(){funct(' + args.join() + ');}';
        } else {
            code = 'asyncFunct = function(){' + funct + '(' + args.join() + ');}';
        }
        BE.log('callAsyncFunct, ' + code);
        eval(code);
        _call(asyncFunct, null)!
    };
    BASExtended.prototype.setProfile = function (profile) {
        BE.profile = profile;
        BE.log('Reset');
        reset()!
        _if(BE.profile.userAgent, function () {
            _call(BE.callAsyncFunct, ['BE.setUserAgent', BE.profile.userAgent])!//~
        })!
        _if(BE.profile.proxy, function () {
            _call(BE.callAsyncFunct, ['BE.setProxy', BE.profile.proxy])!//~
        })!
        _if(BE.profile.cookies && (typeof (BE.profile.cookies) === 'object'), function () {
            _call(BE.callAsyncFunct, ['BE.setCookies', BE.profile.cookies])!
        })!
        _call(BE.callAsyncFunct, ['BE.setResolution', (BE.profile.resolution && BE.profile.resolution.w ? BE.profile.resolution.w : 800), (BE.profile.resolution && BE.profile.resolution.h ? BE.profile.resolution.h : 600)])!
    };
    BASExtended.prototype.setProxy = function (p) {
        BE.log('setProxy: ' + p);
        proxy(p)!
    };
    BASExtended.prototype.setCookies = function (cookies) {
        BE.log('Set cookies: ' + (JSON.stringify(cookies)));
        restore_cookies(JSON.stringify(cookies))!
    };
    BASExtended.prototype.setResolution = function (w, h) {
        BE.log('setResolution: ' + w + 'x' + h);
        resize(w, h)!
    };
    
    BE = new BASExtended();
    BE.setProfile({
            proxy: false,
            userAgent: 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:52.0) Gecko/20100101 Firefox/52.0',
            cookies: false,
            resolution: {w: 800, h: 600}
        });
    

  • administrators

    @blackhacker Да, так лучше



  • @support Блин оказывается помимо сайта 1 там еще есть сайт прокладка, что-то вроде goo.gl, как бы Я смог справится с этим теперь?


  • administrators

    @35xakers А вам нужно именно для сайта прокладки установить один прокси, а для следующего сайта - другой?



  • @support сайт прокладка не поддерживает ipv6 прокси как инстаграм (это очень важно так как они намного дешевле и только по этому можно выйти в плюс) а так неважно какой ип именно для прокладки.


  • administrators

    @35xakers Хорошо сделаю в ближайшей.



  • @support ох, было бы замечательно, жду)


  • administrators

    @35xakers В 16.5.0 не успел, но будет в ближайшей.


  • administrators

    @35xakers Теперь прокси и заголовки можно задавать как для урл, которые подходят под маску так и для вкладок.



  • @support я жду ответ уже 3 неделю, помогите пожалуйста https://community.bablosoft.com/topic/878/самостоятельный-ввод-капчи/30


Log in to reply
 

Looks like your connection to Bablosoft was lost, please wait while we try to reconnect.