Apple představil nový iPad mini, iMac s čipem M6, 14palcový MacBook Pro s čipem M6 a MacBook Pro s PROLED XDR displejem – první Mac s dotykovým ovládáním.
Nedávno představený projekt mapSTL.com řeší budoucnost. 𝕏: "Netušil jsem, kolik patentů na generování map existuje. Existují patenty na generování fantasy map 🫣. Cokoliv je na 3D tiskárnu a tvoří to produkt, bude to mít patenty. Tak bacha na to!" … více »
Multiplatformní emulátor terminálu Ghostty byl vydán ve verzi 1.4 (𝕏). Přehled novinek a vylepšení v poznámkách k vydání.
Byla objevena zranitelnost Tailworm v Tailscale a Headscale umožňující lokální eskalaci práv přihlášeného uživatele. Následně byla v Tailscale v opravené verzi 1.104.4+ změněna architektura aplikace. Viz příspěvek na blogu Tailscale.
Byl vydán Mozilla Firefox 159.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 159 bude brzy k dispozici také na Flathubu a Snapcraftu.
Nasazení softwaru, který nyní používá ve svých autech pro čínský trh, zvažuje automobilový koncern Volkswagen také v Evropě, kde by se mohl používat v budoucích vozech značek Volkswagen, Škoda a Cupra. Základem pro budoucí evropské modely by se mohla stát takzvaná China Electronic Architecture, elektronická architektura vyvinutá pro čínské modely ve spolupráci s tamní automobilkou Xpeng.
Vedoucím brněnské pobočky Red Hatu se stal Radek Vokál [LinkedIn].
Open source download manager Fatrat povstal z popela. Autor k dvacetiletému výročí projektu přidal do vínku podporu nejnovější knihovny libtorrent, rozhraní portoval na QT6, došlo k nahrazení podpory java rozšíření pythonem. Webové rozhraní bylo přepsáno s podporou mobilních zařízení. Aplikaci je taktéž možno zkompilovat bez podpory GUI. Více informací v releases.
Zranitelnost Broccoli2Shell (CVE-2026-111497) v kompresní knihovně Brotli se netýká pouze Node.js. Ohroženy jsou také aplikace využívající HTTP. Knihovnu používají webové prohlížeče, servery i řada dalších aplikací a technologií, například také Python nebo Bun. Identifikace všech zranitelných komponent může být obtížná, protože knihovna bývá součástí dalších softwarových balíčků nebo je přímo začleněna do spustitelných souborů aplikací.
Quad9, švýcarský celosvětově působící neziskový poskytovatel DNS, od 24. listopadu 2026 ukončí své služby ve Francii kvůli soudnímu sporu s katarskou televizní stanicí beIN. Ta požadovala blokování domén, které podle ní nelegálně zpřístupňují sportovní přenosy. Francouzský soud Katarům vyhověl a nařídil (🇫🇷, PDF) Quad9 blokaci zavést, pod hrozbou pokuty 1000 eur denně. Provozovatel příkaz odmítá s tím, že blokace
… více »Mám problém s rozdělením rozsahu ipv6, potřebuji rozdělit ip rozsahy dle potřeby, s ipv4 mi to funguje v pořádku pomocí :
inet_net_ntop(AF_INET,odkud,24,kam,INET_ADDRSTRLEN); a vše je ok výstup: A.B.C.0/24 apod.
Knihovna arpa/inet.h to ale neumí s AF_INET6, snažil jsem se to nějak implementovat s postgresql databáze s knihovnou inet_net_ntop.c, ale nechci kvůli tomu includovat celý postgresql a tu část svobodné knihovny se mi nepodařilo správně vyvázat a rozchodit.
Potřebuju rozsekat ipv6 dle potřeby např.:
A:B:C:D:E:F:G:H/128 -> A:B:C:D::/64 apod.
Znáte nějakou jinou knihovnu/metodu, (nejlépe aby byla malá a v rámci GPL) jak na to ?
Díky
Zkracování je jen možnost, není to povinné. Např.
:: 0000:0000:0000:0000:0000:0000:0000:0000 0:0:0:0:0:0:0:0 0:00:000:0000:0000:000:000:0 0::0
jsou všechno korektní zápisy stejné adresy.
inet_net_ntop(). Pokud to dostanete v nativní reprezentaci, tak porovnání na rovnost můžete provést i v ní (a bude jednodušší).
Ok, vysvětlím, jen jsem vždy překvapený, že se každý musí ujistit, že to potřebuji.
je to fastcgi webapp v C, kdy chodí requesty do login systemu,ip přijde z getenv jako string, v normálním případě se převede na in6_addr strukturu a pracuje se s ní, vyhodnocuje apod., existuje ale prvotní kontrola, v určitých případech, kdy přijde request rovnou se vezme string z getenv, porovná se string v DB a v případě shody se komunikace zahazuje (typicky obrana před utoky apod)
Proto je důležité zkrácení a převod do /64,56 atd... dle toho co chci zahodit. Čím menší string (i menší data v DB), tím rychleji se odmítne komunikace s něčím s čím nechci komunikovat. Nechci tam mít konverzi na in6_addr, porovnání s intem atd.. zbytečné instrukce navíc pro ten případ.
Ve fázy zpracování (což je jiný případ) v in6_addr potřebuji zkonstruovat ten rozsah a zkrátit ho, proto ten int_net_ntop...
No to si úplně nemyslím, můžou tam být zkráceniny,Jaké zkráceniny? Maskuje se v binární podobě a to je prostě jenom sekvence 128 bitů, nic víc, nic míň.
For both functions, af specifies the address family for the conversion; the only supported value is AF_INET.
Ale jak už bylo řečeno, napsat si vlastní implementaci je triviální: odmaskujete příslušný počet nejnižších bitů, převedete na textovou reprezentaci pomocí inet_ntop a na konec přidáte lomítko a délku prefixu. Třeba takhle:
const char *inet6_net_ntop(const struct in6_addr* addr, unsigned bits,
char* buff, unsigned len)
{
struct in6_addr a6 = *addr;
unsigned char* src = a6.s6_addr;
const char* bp;
char* p;
unsigned i;
if ((len < INET6_ADDRSTRLEN + 5) || (bits > 128))
return NULL;
for (i = (bits + 7) / 8; i < 16; i++)
src[i] = 0;
if (bits % 8)
src[bits / 8] &= ~((1 << (8 - (bits % 8))) - 1);
bp = inet_ntop(AF_INET6, src, buff, len - 4);
if (!bp)
return NULL;
p = buff;
while (*p)
p++;
*p++ = '/';
snprintf(p, 4, "%u", bits);
return buff;
}
Co takhle prevest masku i ipv6 na sitovou reprezentaci
Jak konkrétně se síťová reprezentace liší od toho, co je ve struct in6_addr?
--- addr.c.orig 2015-11-03 09:58:02.588426088 +0100
+++ addr.c 2015-11-03 09:57:35.660802261 +0100
@@ -11,13 +11,11 @@
unsigned char* src = a6.s6_addr;
const char* bp;
char* p;
- unsigned i;
if ((len < INET6_ADDRSTRLEN + 5) || (bits > 128))
return NULL;
- for (i = (bits + 7) / 8; i < 16; i++)
- src[i] = 0;
+ memset(src + (bits + 7) / 8, 0, 16 - (bits + 7) / 8);
if (bits % 8)
src[bits / 8] &= ~((1 << (8 - (bits % 8))) - 1);
Tiskni
Sdílej: