- janoszen blogja
- A hozzászóláshoz be kell jelentkezni
- 1615 megtekintés
Hozzászólások
Készülsz a http://hup.hu/node/103397 -ra? :P
--
https://www.youtube.com/watch?v=K_lg7w8gAXQ&feature=player_detailpage#t…
- A hozzászóláshoz be kell jelentkezni
Lebuktam. :) Igen, egy kis takeaway lesz. Ha marad egy kis időm, csinálok egy minimál tűzfalat is.
- A hozzászóláshoz be kell jelentkezni
Én sem találkoztam még hasonlóval, jó lett! És köszi, hogy megosztottad! A technikai részéhez nem tudok hozzászólni, mert nem teszteltem. A kódhoz viszont lenne egy megjegyzésem, mert szerintem egy kicsit túlbonyolítottad.
A $part1 … $part4 és $part8 helyett én egy darab $parts-ot használnék, amely egy tömb lenne. A hosszú preg_match-ek helyett pedig:
if(filter_var($address, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) {
$parts = explode(':', $address);
}
Más részeket is lehet egyszerűsíteni, pl.:
if ((int)$matches['part1'] > 255 || (int)$matches['part2'] > 255 || (int)$matches['part3'] > 255 || (int)$matches['part4'] > 255) {
throw new INETAddressFormatError($address);
}
helyett:
if(max($parts) > 255) {
throw new INETAddressFormatError($address);
}
Nem kötözködés képpen írtam ezeket, hanem javaslatként, sokkal átláthatóbbá teszik a kódot.
- A hozzászóláshoz be kell jelentkezni
Részben igazad van, mivel ez csak egy nagyon első változat, részben viszont szándékos. Nálam már régóta policy, hogy a PHP-ból az alapvető nyelvi elemek kivételével minél kevesebbet használjak, így a filter is blacklistre került részben mert volt benne vuln (holott pont ennél kellett volna kínosan odafigyelni), másrészt szeretem, ha a kód lekövethető. Az INET4 és INET6 osztályokból majd össze akarom vonni a közös részekez, akkor talán nem tűnik majd tùlbonyolításnak.
- A hozzászóláshoz be kell jelentkezni
Viszont a php saját függvényei natív függvények, tehát sokkal gyorsabban futnak, mint a php kód.
--
Don't be an Ubuntard!
- A hozzászóláshoz be kell jelentkezni
Tény, de ha nagyon zavar az overhead, átírom az egészet C-be. Vagy nem használok PHP-t.
Btw. szerintem a fenti kód nem működik, ha a PHP IPv6 nélkül van forgatva, viszont ettől függetlenül akarhat valaki IPv6 címekkel dolgozni.
- A hozzászóláshoz be kell jelentkezni
typo bug: src/INET6Address.php#L56
--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!
- A hozzászóláshoz be kell jelentkezni
Köszi, javítva.
- A hozzászóláshoz be kell jelentkezni
Update: betoltam egy csomó függvényt cím típus ellenőrzésre az alapján, ami infót össze tudtam szedni. Nem vagyok 100%-ig biztos benne, hogy minden címtartomány helyesen van megadva, aki teheti, légyszi nézze át / tesztelje!
- A hozzászóláshoz be kell jelentkezni