Autor Zpráva
lattor
Profil
Dobrý den,

na firemní web jsme nasadili HTTPS, pomocí $.getJSON('api.wipmania.com/jsonp?callback=?') jsem získával z IP adresy kód země (country_code). Momentálně je ale nemožné požadovat odpověď od tohoto serveru, protože náš web má HTTPS certifikát a "api.wipmania.com" má HTTP certifikát. Nenašel jsem žádnou jinou alternativu, která by poskytovala zdarma data z IP adresy (jedině s omezeným množstvím požadavků).

Je možné vytvořit nějakou výjimku, kdy se povolí přesměrování z HTTPS na HTTP a dostanu zpět odpověď (z HTTP na HTTPS)?
Jde získat kód země uživatele jiným způsobem? Můžu si vytvořit nějaký vlastní script pro získání dat z IP?
Není jiná možnost než se zaregistrovat a platit tuto službu?
N71
Profil *
Můžeš použít svůj server jako proxy. JavaScript stránky pak nebude muset komunikovat napřímo a omezení pro smíšený obsah se tě nedotkne.
Kajman
Profil
N71:
Ale musela by ta služba podporovat to, že se jí předá zjištěná IP jako parametr a nebude brát IP, ze které přišel požadavek.

lattor:
Možná by se dalo říct v http hlavičce díky Access-Control-Allow-Origin, že na tuto doménu je možné přistoupit i s protokolem http.
lattor
Profil
Děkuji vám za odpovědi. Přidáním header("Access-Control-Allow-Origin: *") nebo header("Access-Control-Allow-Origin: api.wipmania.com/jsonp?callback=?") v PHP se nic nezměnilo, stále "Mixed Content" problém. Zkoušel jsem využít proxy službu - cors-anywhere.herokuapp.com (kde za tuto url přidám url wipmanie), ale hází mi to net::ERR_ABORTED 400 (Header required).

Vůbec nevím, jak nastavit webový server (hosting) jako proxy. Nenašel jsem, že by služba api.wipmania.com podporovala předání IP jako parametru, takže je asi zbytečné nastavovat web server jako proxy.

Tudíž asi nezbývá nic jiného než využít placených služeb, které mají HTTPS.
Keeehi
Profil
Je tu možnost si to udělat sám.

github.com/maxmind/GeoIP2-php

Výhodou je, že to může být rychlejší jelikož celou databázi IP adres budeš mít na svém serveru a ušetříš tak dobu za posílání požadavků na nějaké API. Nevýhodou je, že tu databázi bys měl čas od času aktualizovat. Jelikož jde ale vlastně jen o stáhnutí jednoho souboru, nijak náročné to zase není.
Kajman
Profil
Keeehi:
Pokud potřebuje znát jen pár tisíc IP denně (a např. si bude cachovat pár hodin zjištěnou zemi), může být levnější platit službu za požadavek (např. $0.0001 za dotaz), než si koupit celou databázi, nad kterou zmíněný skript operuje, a platit měsíčně za možnost obnovy (např. $24).
lattor
Profil
Keeehi:
Díky za tip. Podle stránek maxmind.com vypadá, že se za stahování aktuální databáze platí měsíční poplatek - www.maxmind.com/en/geoip2-country-database. K tomu si nejsem moc jistej, jak to je s požitím tohoto produktu ke komerčním účelům.
Beavis
Profil
lattor:
GeoIP je ke stažení zdarma. Pro komerční účely se platí něco kolem 250 $ na rok.
lattor
Profil
Beavis:
No tak to se mi nevyplatí.

Kajman:
Denně potřebuju znát max. pár tisíc IP, takže to vyřeším nějakou placenou službou za požadavek (ipstack.com nebo ipdata.co).

Děkuju vám za odpovědi.
Keeehi
Profil
Já to používám s GeoLite2 databází, která je zdarma. Píšou že může být méně přesná než ta placená verze ale mně to bohatě stačí. Samozřejmě různé projekty mohou vyžadovat různou přesnost, takže záleží na tobě, zda ti to bude stačit. Integrace není složitá, tak zo můžeš zkusit a uvidíš.

Beavis:
Možná to chápu špatně ale to je licence, pokud chceš tu databázi distribuovat společně s nějakým tvým programem, ne? Tudíž pokud bych vytvořil nějaké své vlastní CMS s funkcionalitou obsahující GeoIP, které bych pak prodával nekomu dalšímu, pak bych licenci potřeboval. Pokud tu databázi používám ve svém vlastním projektu, pak ji nepotřebuji. Nebo to je jinak?
Taps
Profil
lattor:
Lokalisace podle IP
Kajman
Profil
Keeehi:

Na tom odkazu je zmínka, že od ledna 2019 už tato varianta nebude aktualizovaná. Pokud tedy lattor potřebuje aktuální údaje a nestačí mu údaje platné k začátku roku 2019, tak mu zastaralá a opuštěná GeoLite2 nestačí.
lattor
Profil
Kajman:
Vypadá to, že maxmind nahradil starou databázi "GeoLite Legacy databases" za "GeoLite2 databases", takže by data měla být aktuální.
Kajman
Profil
Ajo, popletl jsem to. Pardon.
lattor
Profil
Keeehi:
Stačí mi, když GeoLite2 zjistí zemi (resp. kód země). To by mělo zvládnout v pohodě, ne?

Úplně mi není jasná ta instalace GeoIP2 PHP API, jak se píše na githubu - Doporučují to nainstalovat přes Composer nebo Phar, ale jak to provedu, když na webhostingu není příkazová řádka, aspoň myslím? Nejde to všechno udělat čistě přes PHP, přes require?
Keeehi
Profil
lattor:
jak to provedu, když na webhostingu není příkazová řádka
Uděláš to u sebe. Na svém počítači příkazovou řádku máš. Tam si to necháš composerem stáhnout a na webhosting pak už jen nahraješ soubory, co ti to stáhlo (složka vendor).
lattor
Profil
Keeehi:
Jo, díky.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0