Задать вопрос
  • Есть компонент/модуль или просто код реализации socks5 прокси сервера на Delphi 6/7?

    @ruyurik
    Очень много инфы перелопатил на форумах, много делал экспериментов, в итоге добавил несколько строк работающего кода, чем и поделюсь.
    Делал для Socks Proxy сервера, для RDP-соединений. Работает под Indy компонентами, использую Delphi XE5.
    По TidTCPServer (по какому-нить свободному порту) на обработчике OnExecute создаю динамически компонент проброса портов TidMappedPortTCP

    var mRemap: TIdMappedPortTCP;
    begin
        mRemap := TIdMappedPortTCP.Create(Application);
        mRemap.DefaultPort := 40000; //Выбираем входящий порт прокси-сервера (необходимо пробросить порт до этого компа на роутере), у меня для каждого соединения выбран свой порт
        mRemap.OnConnect := MappedPortConnect;   //MappedPortConnect - новый назначаемый обработчик для всех соединений при перенаправления
        mRemap.Active := True;
    end;


    потом добавляем сам обработчик:

    procedure TForm1.MappedPortConnect(AContext: TIdContext);
    begin
      // Обработчик один на все соединения, здесь проверка IP соединения, которое вы должны ранее сохранить куда нибудь в массив при первом соединении через порт компонента TidTCPServer
      if (AContext.Binding.PeerIP = '192.168.0.1') then
          with TIdTCPClient(TIdMappedPortContext(AContext).OutboundClient) do
          begin
              Host := 'Computername';
              Port := 3389;
          end;
    end;
    Ответ написан
    Комментировать
  • Как в air datepicker сделать что бы выделялись даты которые есть?

    @ruyurik
    Я в JS переопределяю onRenderCell и внутри добавляю классы по условиям (которые потом красишь в CSS) - кусок кода у меня...arrDpres, arrDlbu, holDays - массивы с датами по которым раскрашиваю:
    var i = 0;
     $('.datepicker-onlinezapis').datepicker({
    	onRenderCell: function (date, cellType) {
    					var day = date.getDay(), isDisabled = false;
    					var dt4 = new Date(date);
    						dt4.setDate(dt4.getDate() + 1 );
    					var curcalday = dt4.toJSON().slice(0, 10); // преобразуем дату из формата DateTime в yyyy-mm-dd
    
    					for (i = 0; i <  arrDpres.length; i++){
    						if (arrDpres[i] == curcalday){
    							return {
    								classes: 'datapicker-datesindb'
    							}
    						}
    					}
    
    					for (i = 0; i <  arrDlbu.length; i++){
    						if (arrDlbu[i] == curcalday){
    							return {
    								classes: 'datapicker-lockedbyuser'
    							}
    						}
    					}
    
    					for (i = 0; i < holDays.length; i++){
    						if (holDays[i] == dateFormat(curcalday)){
    							isDisabled = true;
    							return {
    								disabled: isDisabled
    							}
    						}
    					}
    					if (cellType == 'day') {
    						isDisabled = disabledDays.indexOf(day) != -1;
    							
    						return {
    							disabled: isDisabled
    						}
    					}
    
    					
    				}
    Ответ написан
    Комментировать