void __fastcall TForm1::IdMappedPortTCP1Connect(TIdContext *AContext)
{
ListBox1->Items->Add(L"Конект от " + AContext->Binding()->PeerIP);
AContext->Connection->Intercept = new TIdConnectionIntercept(0);
AContext->Connection->Intercept->OnReceive = IdConnectionIntercept1Receive;
AContext->Connection->Intercept->OnSend = IdConnectionIntercept1Send;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::IdConnectionIntercept1Receive(TIdConnectionIntercept *ASender,
TBytes &ABuffer)
{
String z = " : ";
for (int i = 0; i < ABuffer.Length; i++)
z += IntToHex((int)ABuffer,2) + L' ';
OutputDebugStringW(("Пакет от сервера длинной " + IntToStr(ABuffer.Length) + z).c_str());
}
//---------------------------------------------------------------------------
void __fastcall TForm1::IdConnectionIntercept1Send(TIdConnectionIntercept *ASender,
TBytes &ABuffer)
{
String z = " : ";
for (int i = 0; i < ABuffer.Length; i++)
z += IntToHex((int)ABuffer,2) + L' ';
OutputDebugStringW(("Пакет от сервера длинной " + IntToStr(ABuffer.Length) + z).c_str());
}
//---------------------------------------------------------------------------
void __fastcall TForm1::IdMappedPortTCP1Disconnect(TIdContext *AContext)
{
if(AContext->Connection->Intercept)
{
ListBox1->Items->Add(L"Дисконект от " + AContext->Binding()->PeerIP + L" инициированный клиентом.");
delete AContext->Connection->Intercept;
AContext->Connection->Intercept = 0;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::IdMappedPortTCP1OutboundDisconnect(TIdContext *AContext)
{
if(AContext->Connection->Intercept)
{
ListBox1->Items->Add(L"Дисконект от " + AContext->Binding()->PeerIP + L" инициированный сервером.");
delete AContext->Connection->Intercept;
AContext->Connection->Intercept = 0;
}
}
//---------------------------------------------------------------------------
TIdConnectionIntercept портит пакеты
Исходник прокси:
Код:
В логе аутпута
Код:
Debug Output: Пакет от клиента длинной 71 : 0A 84 88 B2 A9 13 10 7E 5C C3 73 AA 34 C9 1C 38 84 DB F5 07 4A 3B 73 E3 7E E5 F3 9E B7 C5 47 99 2A 52 6B 7B D6 1C F3 A0 3C 69 C3 16 FB 56 E4 10 1C D5 0B 54 8C 07 A6 61 F4 F9 83 9E E8 9A AE A2 1C D1 CD F9 F6 49 DF
Debug Output: Пакет от сервера длинной 71 : 0A 04 08 32 29 13 10 7E 5C 43 73 2A 34 49 1C 38 04 5B 75 07 4A 3B 73 63 7E 65 73 1E 37 45 47 19 2A 52 6B 7B 56 1C 73 20 3C 69 43 16 7B 56 64 10 1C 55 0B 54 0C 07 26 61 74 79 03 1E 68 1A 2E 22 1C 51 4D 79 76 49 5F
Debug Output: Пакет от клиента длинной 71 : 0A 84 88 B2 A9 13 10 7E 5C C3 73 AA 34 C9 1C 38 84 DB F5 07 4A 3B 73 E3 7E E5 F3 9E B7 C5 47 99 2A 52 6B 7B D6 1C F3 A0 3C 69 C3 16 FB 56 E4 10 1C D5 0B 54 8C 07 A6 61 F4 F9 83 9E E8 9A AE A2 1C D1 CD F9 F6 49 DF
Debug Output: Пакет от сервера длинной 71 : 0A 04 08 32 29 13 10 7E 5C 43 73 2A 34 49 1C 38 04 5B 75 07 4A 3B 73 63 7E 65 73 1E 37 45 47 19 2A 52 6B 7B 56 1C 73 20 3C 69 43 16 7B 56 64 10 1C 55 0B 54 0C 07 26 61 74 79 03 1E 68 1A 2E 22 1C 51 4D 79 76 49 5F
Debug Output: Пакет от клиента длинной 71 : 0A 84 88 B2 A9 13 10 7E 5C C3 73 AA 34 C9 1C 38 84 DB F5 07 4A 3B 73 E3 7E E5 F3 9E B7 C5 47 99 2A 52 6B 7B D6 1C F3 A0 3C 69 C3 16 FB 56 E4 10 1C D5 0B 54 8C 07 A6 61 F4 F9 83 9E E8 9A AE A2 1C D1 CD F9 F6 49 DF
Debug Output: Пакет от сервера длинной 71 : 0A 04 08 32 29 13 10 7E 5C 43 73 2A 34 49 1C 38 04 5B 75 07 4A 3B 73 63 7E 65 73 1E 37 45 47 19 2A 52 6B 7B 56 1C 73 20 3C 69 43 16 7B 56 64 10 1C 55 0B 54 0C 07 26 61 74 79 03 1E 68 1A 2E 22 1C 51 4D 79 76 49 5F
Debug Output: Пакет от клиента длинной 71 : 0A 84 88 B2 A9 13 10 7E 5C C3 73 AA 34 C9 1C 38 84 DB F5 07 4A 3B 73 E3 7E E5 F3 9E B7 C5 47 99 2A 52 6B 7B D6 1C F3 A0 3C 69 C3 16 FB 56 E4 10 1C D5 0B 54 8C 07 A6 61 F4 F9 83 9E E8 9A AE A2 1C D1 CD F9 F6 49 DF
Debug Output: Пакет от сервера длинной 71 : 0A 04 08 32 29 13 10 7E 5C 43 73 2A 34 49 1C 38 04 5B 75 07 4A 3B 73 63 7E 65 73 1E 37 45 47 19 2A 52 6B 7B 56 1C 73 20 3C 69 43 16 7B 56 64 10 1C 55 0B 54 0C 07 26 61 74 79 03 1E 68 1A 2E 22 1C 51 4D 79 76 49 5F
Debug Output: Пакет от клиента длинной 71 : 0A 84 88 B2 A9 13 10 7E 5C C3 73 AA 34 C9 1C 38 84 DB F5 07 4A 3B 73 E3 7E E5 F3 9E B7 C5 47 99 2A 52 6B 7B D6 1C F3 A0 3C 69 C3 16 FB 56 E4 10 1C D5 0B 54 8C 07 A6 61 F4 F9 83 9E E8 9A AE A2 1C D1 CD F9 F6 49 DF
Debug Output: Пакет от сервера длинной 71 : 0A 04 08 32 29 13 10 7E 5C 43 73 2A 34 49 1C 38 04 5B 75 07 4A 3B 73 63 7E 65 73 1E 37 45 47 19 2A 52 6B 7B 56 1C 73 20 3C 69 43 16 7B 56 64 10 1C 55 0B 54 0C 07 26 61 74 79 03 1E 68 1A 2E 22 1C 51 4D 79 76 49 5F
Debug Output: Пакет от сервера длинной 71 : 0A 04 08 32 29 13 10 7E 5C 43 73 2A 34 49 1C 38 04 5B 75 07 4A 3B 73 63 7E 65 73 1E 37 45 47 19 2A 52 6B 7B 56 1C 73 20 3C 69 43 16 7B 56 64 10 1C 55 0B 54 0C 07 26 61 74 79 03 1E 68 1A 2E 22 1C 51 4D 79 76 49 5F
Debug Output: Пакет от клиента длинной 71 : 0A 84 88 B2 A9 13 10 7E 5C C3 73 AA 34 C9 1C 38 84 DB F5 07 4A 3B 73 E3 7E E5 F3 9E B7 C5 47 99 2A 52 6B 7B D6 1C F3 A0 3C 69 C3 16 FB 56 E4 10 1C D5 0B 54 8C 07 A6 61 F4 F9 83 9E E8 9A AE A2 1C D1 CD F9 F6 49 DF
Debug Output: Пакет от сервера длинной 71 : 0A 04 08 32 29 13 10 7E 5C 43 73 2A 34 49 1C 38 04 5B 75 07 4A 3B 73 63 7E 65 73 1E 37 45 47 19 2A 52 6B 7B 56 1C 73 20 3C 69 43 16 7B 56 64 10 1C 55 0B 54 0C 07 26 61 74 79 03 1E 68 1A 2E 22 1C 51 4D 79 76 49 5F
Debug Output: Пакет от клиента длинной 71 : 0A 84 88 B2 A9 13 10 7E 5C C3 73 AA 34 C9 1C 38 84 DB F5 07 4A 3B 73 E3 7E E5 F3 9E B7 C5 47 99 2A 52 6B 7B D6 1C F3 A0 3C 69 C3 16 FB 56 E4 10 1C D5 0B 54 8C 07 A6 61 F4 F9 83 9E E8 9A AE A2 1C D1 CD F9 F6 49 DF
Debug Output: Пакет от сервера длинной 71 : 0A 04 08 32 29 13 10 7E 5C 43 73 2A 34 49 1C 38 04 5B 75 07 4A 3B 73 63 7E 65 73 1E 37 45 47 19 2A 52 6B 7B 56 1C 73 20 3C 69 43 16 7B 56 64 10 1C 55 0B 54 0C 07 26 61 74 79 03 1E 68 1A 2E 22 1C 51 4D 79 76 49 5F
Debug Output: Пакет от клиента длинной 71 : 0A 84 88 B2 A9 13 10 7E 5C C3 73 AA 34 C9 1C 38 84 DB F5 07 4A 3B 73 E3 7E E5 F3 9E B7 C5 47 99 2A 52 6B 7B D6 1C F3 A0 3C 69 C3 16 FB 56 E4 10 1C D5 0B 54 8C 07 A6 61 F4 F9 83 9E E8 9A AE A2 1C D1 CD F9 F6 49 DF
Debug Output: Пакет от сервера длинной 71 : 0A 04 08 32 29 13 10 7E 5C 43 73 2A 34 49 1C 38 04 5B 75 07 4A 3B 73 63 7E 65 73 1E 37 45 47 19 2A 52 6B 7B 56 1C 73 20 3C 69 43 16 7B 56 64 10 1C 55 0B 54 0C 07 26 61 74 79 03 1E 68 1A 2E 22 1C 51 4D 79 76 49 5F
Debug Output: Пакет от клиента длинной 71 : 0A 84 88 B2 A9 13 10 7E 5C C3 73 AA 34 C9 1C 38 84 DB F5 07 4A 3B 73 E3 7E E5 F3 9E B7 C5 47 99 2A 52 6B 7B D6 1C F3 A0 3C 69 C3 16 FB 56 E4 10 1C D5 0B 54 8C 07 A6 61 F4 F9 83 9E E8 9A AE A2 1C D1 CD F9 F6 49 DF
Debug Output: Пакет от сервера длинной 71 : 0A 04 08 32 29 13 10 7E 5C 43 73 2A 34 49 1C 38 04 5B 75 07 4A 3B 73 63 7E 65 73 1E 37 45 47 19 2A 52 6B 7B 56 1C 73 20 3C 69 43 16 7B 56 64 10 1C 55 0B 54 0C 07 26 61 74 79 03 1E 68 1A 2E 22 1C 51 4D 79 76 49 5F
Очень похоже что проксик режет все что выше 0x80 соотв - хотелось бы убрать это ограничение.