Diskuze: php ip, ipv6 to ipv4
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 13 zpráv z 13.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
to cislo by melo tu vyhodu, ze se da zapsat jako 15 mozna 16 znaku. takze by to vyhovelo v podstate puvodnmu formatu.
Ted jsem objevil tuto stranku, ktera asi problem pekne shrnuje, ohledne tech
funkci, ktere jsem prilis nechapal.
https://intsystem.org/…-ipv6-v-php/
if( filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) ){
// IPv4
}
if( filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) ){
// IPv6
}
var_dump( inet_pton( $ip4 ) ); // string(4) " c"
var_dump( inet_pton( $ip6 ) ); // string(16) "i?1 i?1"
function dtr_pton( $ip ){
if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)){
return current( unpack( "A4", inet_pton( $ip ) ) );
}
elseif(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)){
return current( unpack( "A16", inet_pton( $ip ) ) );
}
throw new \Exception("Please supply a valid IPv4 or IPv6 address");
}
16 znaku, na urovni sql, to vypada slibne
SELECT INET6_NTOA(`ip_address`) AS `ip` FROM `log_table` WHERE INET6_ATON(`ip_address`) = ?;
Nestačilo by pouze změnit sloupci max. počet znaků?
Jak může být ipv6 maximálně dlouhá jako řetězec, 39 znaků?
Prevod IPv6 na IPv4 by nemal byt mozny, uz len z toho hladiska, ze pocet IPv4 je 232 a IPv6 je 2128.
Takze ostava ti len zvacsit retazec na 39 znakov, nakolko IPv6 obsahuje 8 skupin 4 hexadecimalnych cislic oddelenymi ":", cize to mas 8*4 + 7
Není možné převádět mezi IPv4 a IPv6 protože se jedná o dva různé systémy/údaje. Nemůžeš že zařízení které má pouze IPv4 poslat data na zařízení které má pouze IPv6 a naopak.
Vím že tohle vlákno není o tom, ale lze udělat komunikaci mezi sítí
která je pouze ipv4 a ipv6.
Nepůjde 100% všechno, ale základní komunikace lze.
Ale pravda že převést ipv6 na ipv4 nelze
Nebo taky záleží jak do podrobna to bereš no.
Je možné že základní komunikace lze, ale na SŠ ti řeknou že to nelze. Ale brzo bude IPv10 což umožní plnohodnotnou komunikaci mezi IPv4 a IPv6
Neviem, kde si cital o tom, ze coskoro bude IPv10, ale podla vsetkeho to bol len navrh, ktory sa realizovat nebude nakolko je to uplny nezmysel.
Nechtel jsem zasahovat do db. Ale bracha mne ukecal, ze to natahne na 39
znaku. Takze je to ok.
Ja vetsinou uvazuji uspornejsim zpusobem. IP je tam jako index. Cim mene znaku,
tim lepe. Proto jsem to cele chtel konvertovat na varbinary. Ale, vzhledem k
tomu, ze se jedna asi o 10 radku ban tabulky a 100 radku zprav je to asi celkem
jedno.
Ano, navody na prevod ipv6 na ipv4 mi nedavali smysl, podle toho, co o tom
vim. Ale neni to ma oblast zajmu, tak jsem se zeptal. Nepotrebuji nutne
uzivatele identifikovat velkou ip adresu, abych mu dal ban. Stacila by mi cast
adresy.
No, ale puvodni kod orezaval adresu na 15 znaku, takze SELECT ip15=ip39 rekl, ze
se ip neshoduji a pokusil se vytvorit dalsi radek do tabulky pomoci INSERT. A
tam to cele zkapalo na duplicity-id-ip Promarnil jsem furu casu nez mi doslo, co je spatne
Zobrazeno 13 zpráv z 13.