Autor | Zpráva | ||
---|---|---|---|
tester Profil * |
#1 · Zasláno: 28. 3. 2016, 21:38:48
V manuálu PHP jsem našel funkce na převod mezi IP a long int jenže nikde jsem nenašel kolik paměti zabírá long int. Stačí mi 4 byty? Pokud ne tak proč v php nejsou funkce ip2int a int2ip?
Dále bych se vás chtěl zeptat kdy se očekává přechod na IPv6, řešíte ukládání adres v tomto tvaru nebo budete řešit teprve až bude třeba. 45 bytů a porovnávání tak dlouhých řetězců to bude asi záhul na servery oproti 4 bytovým adresám IPv4. |
||
Alphard Profil |
PHP nemá jiný celočíselný datový typ než integer. Jeho rozsah závisí na operačním systému, viz konstanta
PHP_INT_SIZE .
Na IPv6 se přechází už teď a počítám s tím už teď. Že by byl v typické aplikaci problém zrovna s tímto se nebojím. |
||
Tomáš123 Profil |
#3 · Zasláno: 28. 3. 2016, 22:12:59
tester:
Adresy IPv4 sa už minuli. Nemusí to znamenať, že sa už nikde na svete nenachádza voľná IP adresa verzie 4, ale že vedúce organizácie už všetky adresy rozdelili. Už začiatkom deväťdesiatych rokov sa začalo uvažovať o limitoch protokolu IP štvrtej verzie. Postupne sa prechádza na 128 bitové (16 bajtové) IP adresy verzie 6. |
||
Martin2 Profil * |
#4 · Zasláno: 28. 3. 2016, 23:07:30
tester:
Hádám, že pro tebe neexistuje relevantní důvod převádět IP adresy na integery. Nebudeš počítat masky podsítí, rozsahy nebo něco takového, že ne? |
||
tester Profil * |
#5 · Zasláno: 29. 3. 2016, 10:30:42
takže mám na uložení použít VARCHAR(16) a zkrátit adresy tímto způsobem?
www.techrepublic.com/blog/10-things/10-things-you-should-know-about-ipv6-addressing např FE80:CD00:0000:0CDE:1257:0000:211E:729C na FE80:CD00:0:CDE:1257:0:211E:729C FE80:CD00:0000:0000:0000:0000:211E:729C na FE80:CD00::211E:729C Jaký na to použít regulární výraz? IPv4 a IPv6 dávat do stejného sloupce? Př. můj server používá IPv4, ale pokud budu přecházet na jiný server který používá IPv6, budou se tam ukládat adresy v jiném formátu. Když budu ale zase testovat u sebe tak zase jedu v IPv6. Případně dát jeden sloupec který řekne v jakém formátu je IP adresa uložena? |
||
Zechy Profil |
#6 · Zasláno: 29. 3. 2016, 10:45:14
tester:
Je to jen můj dojem, ale řekl bych, že adresy nebude třeba zkracovat, jelikož lokálně ji dostávám již zkrácenou na ::1. |
||
tester Profil * |
Ještě sem přidám jednu záhadu.
Nevíte proč se tento algoritmus zacykluje? $ip = ip2long("185.8.236.17"); $c=0; while($ip): $count += ($ip & 1); $ip = $ip >> 1; echo " $ip "; $c++; if ($c > 11 ) die(""); endwhile; bez if ($c > 11 ) die(""); |
||
abc Profil |
#8 · Zasláno: 29. 3. 2016, 11:32:21
Proč prostě nepoužiješ varchar(46) (viz stackoverflow.com/questions/166132/maximum-length-of-the-textual-representation-of-an-ipv6-address) a adresy neukládáš nezkrácené?
|
||
tester Profil * |
#9 · Zasláno: 29. 3. 2016, 14:14:05
Proč ukládat tak dlouhé když se to vleze do 16bytů?? Jsou funkce jako inet_pton() ale mám starší verzi PHP které to nepodporují takže teď nevyzkouším.
|
||
abc Profil |
#10 · Zasláno: 29. 3. 2016, 15:55:37
Já to vidím spíš obráceně - proč řešit max. 30 bytů rozdíl v komprimované/nekomprimované verzi...
I kdybys tam měl milion záznamů s maximální délkou, tak se jedná o ~30MB, které v dnešní době nejsou problém |
||
tester Profil * |
#11 · Zasláno: 29. 3. 2016, 16:22:42
Tady na stránce dole jsem narazil na zvláštní tvar adres IPv6:
ipv6.com/articles/general/IPv6-Addressing.htm Když do prohlížeče zadám ::1/128 což by mělo odkazovat na 127.0.0.1 tak dostanu hlášku: Omezení přístupu na port Tato adresa obsahuje číslo portu, které je obvykle používáno k jiným účelům než prohlížení webových stránek. Z bezpečnostních důvodů Firefox tento požadavek zrušil. To jako proč? |
||
Davex Profil |
#12 · Zasláno: 29. 3. 2016, 19:08:04
tester:
V případě IPv6 by správně mělo být URL s adresou v hranatých závorkách a bez masky takto: http://[::1]/ .
|
||
Časová prodleva: 9 let
|
0