Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: LukasBeran 15. 07. 2015, 21:38:43
-
Zdravím.
Hledám řešení, jak vypsat v php (pro vlastní testovací účely) IPv4 i IPv6 adresu klienta. $_SERVER['REMOTE_ADDR'] mi vrátí adresu, ze které se připojil, což v případě existence IPv6 kopnektivity znamená IPv6 adresu, protože IPv6 je upřednostňované před IPv4. Já bych ale chtěl vypsat i IPv4 i IPv6. Jak na to v php? Pokud jedna z konektivit nebude dostupná, tak se u dané IP nic nevypíše, to mě nevadí.
Díky
-
Nijak, nejde to. Na server máte navázané TCP/IP spojení z nějaké IP adresy (což ani nemusí být adresa klienta, může to být proxy server nebo NAT). To, že zařízení s danou IP adresou má nastavené také jiné IPv4 nebo IPv6 adresy na straně serveru žádným způsobem nezjistíte.
To, zda je upřednostňován IPv6 protokol, je věc konfigurace klienta. Podle RFC by to tak tuším mělo být, ale má to tak myslím jen 80 % klientů, kteří mají IPv6 konektivitu.
-
Jak píše správně Filip, klient vždy použije jen jednu konektivitu. Řešením je vytvořit si dvě domény: v4only.example.com a v6only.example.com a nechat z obou klienta načíst nějaký objekt. U nich pak bude jistota, že klient přijde jen po jediné konektivitě, která je na té které doméně dostupná.
-
Který typ adres je upřednostňován, určuje RFC 6724. Nativní konektivita je upřednostňována před tunely (6to4, Teredo) a u nativní konektivity IPv6 před IPv4, nicméně ne vždy to aplikace dodržují (u některých prohlížečů se zkusí oboje a použije se ten protokol, který odpoví rychleji, bez ohledu na to, jestli je nativní nebo tunel).
U 6to4 lze z IPv6 adresy vyčíst IPv4 adresu, ale v takovém případě by klient stejně měl upřednostňovat IPv4 adresu. V jakémkoliv jiném případě IPv6 na IPv4 či obráceně převést nelze (alokace jsou nezávislé).
-
Praktická implementace řešení, které navrhuje Petr, je třeba tu - http://ip.webatlas.cz
-
Otázka je, k čemu to má být dobré, protože klient může IPv6 adresu snadno měnit...
-
Díky za všechny reakce.
Jak jsem psal, je to pouze pro moji vlastní potřebu, takže se nemusím zabývat hromadou další okolností kolem toho, řešit proxy, NAT, tunely, upřednostňované věci, změny adres, podvrhy apod. Mám to jen sám pro sebe jako rychlý a jednoduchý test různých věcí a stačí mi tedy naprosto jednoduché a třeba i pro veřejné použití nepoužitelné řešení.
Podoba na webu http://ip.webatlas.cz je něco takového, co bych chtěl. Ale nevím, jak to technicky řešit :(
-
Mám vytvořené dvě subdomény - v4.domena.cz a v6.domena.cz, v6 má jen AAAA záznam, v4 má jen A záznam. To funguje a když si vypíši na těch doménách $_SERVER['REMOTE_ADDR'], dostanu vždy správně adresu - na v4 IPv4 adresu, na v6 IPv6 adresu, vše OK. Ale netuším, jak to dostat do výpisu na domena.cz/ip.php
-
treba pres AJAX.
-
To mi bohužel moc nepomohlo, protože vůbec netuším, jak na to :( S Ajaxem jsem nikdy nedělal.
-
A co tak vlozit do html na domena.cz/index.php iframe s cielovou adresou toho ipv6.domena.cz?
-
Je rok 2015. Na internetu najdes prakticky vsechno vedeni sveta na nekolik kliknuti. proste si udelas stranku a na ni zaridis aby javascript zavolal obsah z tech dvou ruznych domen.
-
Ano, je rok 2015 a internet mi evidentně funguje, ale abych mohl najít potřebné informace, musím vědět, co vlastně mám hledat. A já netuším, co mám hledat, protože nejsem webař, s JavaScriptem, PHP ani Ajaxem nedělám, nikdy jsem nedělal a nenapsal jsem v tom ani řádku kódu. Netuším, co ty technologie dělají, jak fungují, co umí, a tedy ani netuším, co mám hledat... Doufal jsem, že když je to tak jednoduché, že sem někdo ten 1-2 řádky kódu dá, protože je napíše z hlavy během 5 vteřin.