Autor Téma: TNetHTTPClient: Výběr odchozí IP v HTTP requestu?  (Přečteno 549 krát)

Offline paja666

  • Nováček
  • *
  • Příspěvků: 48
  • Karma: 0
    • Verze Delphi: 10.4.1 Sydney
Jak je možné s komponentou TNetHTTPClient vybrat odchozí IP adresu na stroji, který má v rozhraní více IP adres? (ptal jsem se i na StackOverflow https://stackoverflow.com/questions/64588604/tnethttpclient-select-outgoing-ip-for-http-request)

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3119
  • Karma: 136
    • Verze Delphi: D2007, XE3, DX10

Offline paja666

  • Nováček
  • *
  • Příspěvků: 48
  • Karma: 0
    • Verze Delphi: 10.4.1 Sydney
Re:TNetHTTPClient: Výběr odchozí IP v HTTP requestu?
« Odpověď #2 kdy: 03-11-2020, 07:38:51 »
:( Tyto články jsem si četl, jen jsem si říkal, že by se to po letech mohlo změnit. V době cloudů je to docela divné, že by nikdo něco podobného nepotřeboval.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3119
  • Karma: 136
    • Verze Delphi: D2007, XE3, DX10
Re:TNetHTTPClient: Výběr odchozí IP v HTTP requestu?
« Odpověď #3 kdy: 03-11-2020, 13:45:07 »
:( Tyto články jsem si četl, jen jsem si říkal, že by se to po letech mohlo změnit. V době cloudů je to docela divné, že by nikdo něco podobného nepotřeboval.
Tak IMHO je to dost extravagantni pozadavek ;-) Kdyz jsem kdysi potreboval, aby mi nelezl bezny internetovy provoz z vykonostnich duvodu pres momentalne navazany tunel do firemni site, ale sel rovnou do verejne site, tak jsem pridal pravidla do routovaci tabulky. Mel jsem to trvale, ale mozna by si to aplikace mohla nastavovat podle potreby (kdyby na to mela prava).

Jinak Remy nekde pise, ze do Indy dali moznost Bind(), takze teoreticky by se melo dat zavolat Bind napr. i v Synapsi, protoze tam se bezne pouziva na server-side, takze mozna drobna upravicka THTTPSend...

Na wokenni API jsem se zbezne dival a o nic pouzitelneho jsem taky nenasel.

Offline paja666

  • Nováček
  • *
  • Příspěvků: 48
  • Karma: 0
    • Verze Delphi: 10.4.1 Sydney
Re:TNetHTTPClient: Výběr odchozí IP v HTTP requestu?
« Odpověď #4 kdy: 04-11-2020, 12:52:06 »
Tak IMHO je to dost extravagantni pozadavek ;-)

Jedná se o terminálový provoz aplikací v MS Azure, kde je potřeba přistupovat k ISZR a klienti jsou povinně svázaní s IP adresou (a certifikátem). Je to požadavek ze strany Správy základních registrů. Tam jsem zatím nenašel jiné řešení pro WinHTTP API. V tomto prostředí to řeším přes SecureBlackBox. Jiné řešení s DLL knihovnami pro SSL jsem nechtěl použít.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3119
  • Karma: 136
    • Verze Delphi: D2007, XE3, DX10
Re:TNetHTTPClient: Výběr odchozí IP v HTTP requestu?
« Odpověď #5 kdy: 05-11-2020, 06:31:32 »
Jedná se o terminálový provoz aplikací v MS Azure, kde je potřeba přistupovat k ISZR a klienti jsou povinně svázaní s IP adresou (a certifikátem). Je to požadavek ze strany Správy základních registrů.
Divne mi prijde, ze se pouziva k autentikaci certifikat a nelze ho pouzit z ruznych pocitacu (napr. pri home-office). Pokud si to pamatuju, tak jsme se s fix IP setkali nekde na urovni sitovani, ale ne na urovni aplikace...

Offline paja666

  • Nováček
  • *
  • Příspěvků: 48
  • Karma: 0
    • Verze Delphi: 10.4.1 Sydney
« Poslední změna: 05-11-2020, 07:12:07 od paja666 »

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3119
  • Karma: 136
    • Verze Delphi: D2007, XE3, DX10
Re:TNetHTTPClient: Výběr odchozí IP v HTTP requestu?
« Odpověď #7 kdy: 05-11-2020, 08:11:17 »
Bohužel, požadavek správy ZR:
Budiz, ale vsude pisou "spravce AIS zajisti", coz ja si vysvetluju, ze se sit nastavi tak, aby pozadavky na SZR odchazely automaticky pres nejaky konkretni IF a aplikace se tim nezabyva. Alespon to je to, s cim jsem se setkal. Pravda, delali jsme v oblasti bankovnictvi a bez nejakych Azuru
« Poslední změna: 05-11-2020, 08:13:22 od pf1957 »

Offline paja666

  • Nováček
  • *
  • Příspěvků: 48
  • Karma: 0
    • Verze Delphi: 10.4.1 Sydney
Re:TNetHTTPClient: Výběr odchozí IP v HTTP requestu?
« Odpověď #8 kdy: 05-11-2020, 08:22:20 »
Možná jenom přehlížím nějaké řešení. Ale stav je takový, že na Azure běží terminálově více klientů, provozujících AIS a každý AIS (klient) musí komunikovat prostřednictvím své IP adresy. Stroj má v IP rozhraní definované všechny IP adresy klientů a aplikace si ke komunikaci vybere tu nakonfigurovanou pro daného klienta. IP binding je velice jednoduché a efektivní řešení, ale nyní to není nativní, ale prostřednictvím SecureBlackBox. Indy (Synapse) zase pro změnu používá pro SSL DLL knihovny a já chtěl, aby byla celá bezpečnost na OS a ne na nějaké třetí straně. Proto jsem chtěl využít WinHTTP.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3119
  • Karma: 136
    • Verze Delphi: D2007, XE3, DX10
Re:TNetHTTPClient: Výběr odchozí IP v HTTP requestu?
« Odpověď #9 kdy: 05-11-2020, 10:26:25 »
Ja o Azuru nic nevim. Zkusil bych se zeptat Azuristu (treba M$ help-line ev. jestli ma nejakou podporu SZR), jak by se primo resilo pripojeni na konkretni server. Treba nejsi prvni, kdo neco takoveho resil. Ale mozna jsi prvni, kdo neco takoveho dela v Delphi.

.NETisti maji event BindIPEndPoint(), kterym se vraci lokalni adresa jeste pred connectem.