Byla vydána verze 0.2.0 v Rustu napsaného frameworku Pingora pro vytváření rychlých, spolehlivých a programovatelných síťových systémů. Společnost Cloudflare jej letos v únoru uvolnila pod licencí Apache 2.0.
Open source RDP (Remote Desktop Protocol) server xrdp (Wikipedie) byl vydán ve verzi 0.10.0. Z novinek je vypíchnuta podpora GFX (Graphic Pipeline Extension). Nová větev řeší také několik bezpečnostních chyb.
Rocky Linux byl vydán v nové stabilní verzi 9.4. Přehled novinek v poznámkách k vydání.
Dellu byla odcizena databáze zákazníků (jméno, adresa, seznam zakoupených produktů) [Customer Care, Bleeping Computer].
V lednu byl otevřen editor kódů Zed od autorů editoru Atom a Tree-sitter. Tenkrát běžel pouze na macOS. Byl napevno svázán s Metalem. Situace se ale postupně mění. V aktuálním příspěvku Kdy Zed na Linuxu? na blogu Zedu vývojáři popisují aktuální stav. Blíží se alfa verze.
O víkendu 11. a 12. května lze navštívit Maker Faire Prague, festival plný workshopů, interaktivních činností a především nadšených a zvídavých lidí.
Byl vydán Fedora Asahi Remix 40, tj. linuxová distribuce pro Apple Silicon vycházející z Fedora Linuxu 40.
Představena byla služba Raspberry Pi Connect usnadňující vzdálený grafický přístup k vašim Raspberry Pi z webového prohlížeče. Odkudkoli. Zdarma. Zatím v beta verzi. Detaily v dokumentaci.
Byla vydána verze R14.1.2 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5). Přehled novinek v poznámkách k vydání, podrobnosti v seznamu změn.
Dnešním dnem lze již také v Česku nakupovat na Google Store (telefony a sluchátka Google Pixel).
#include < sys/socket.h > #include < netinet/in.h > #include < arpa/inet.h > #include < stdio.h > #include < stdlib.h > int main(int argc, char *argv[]) { struct in_addr addr; unsigned char buf[sizeof(struct in6_addr)]; char str[INET6_ADDRSTRLEN]; if (argc<2) { fprintf(stderr, "IPv4 address required as an argument.\n"); exit(EXIT_FAILURE); } if (inet_aton(argv[1], &addr) == 0) { perror("inet_aton"); exit(EXIT_FAILURE); } if (inet_pton(AF_INET, argv[1], buf) != 1) { perror("inet_pton"); exit(EXIT_FAILURE); } if (inet_ntop(AF_INET6, buf, str, INET6_ADDRSTRLEN)==NULL) { perror("inet_ntop"); exit(EXIT_FAILURE); } printf("%s\n", str); exit(EXIT_SUCCESS); }
Řešení dotazu:
#define _GNU_SOURCE #include < string.h> #include < sys/socket.h> #include < netinet/in.h> #include < arpa/inet.h> #include < stdio.h> #include < stdlib.h> #define IPV6_ADDRESS_SIZE sizeof(struct in6_addr) int main(int argc, char *argv[]) { struct in_addr addr; unsigned char buf_v4[sizeof(struct in_addr)]; unsigned char buf_v6[IPV6_ADDRESS_SIZE] = {0}; unsigned char str[INET6_ADDRSTRLEN]; if (argc<2) { fprintf(stderr, "IPv4 address required as an argument.\n"); exit(EXIT_FAILURE); } if (inet_aton(argv[1], &addr) == 0) { perror("inet_aton"); exit(EXIT_FAILURE); } if (inet_pton(AF_INET, argv[1], buf_v4) != 1) { perror("inet_pton"); exit(EXIT_FAILURE); } *(buf_v6 + IPV6_ADDRESS_SIZE - 5) = 255; *(buf_v6 + IPV6_ADDRESS_SIZE - 6) = 255; mempcpy(buf_v6 + IPV6_ADDRESS_SIZE - 4, buf_v4, 4); if (inet_ntop(AF_INET6, buf_v6, str, INET6_ADDRSTRLEN)==NULL) { perror("inet_ntop"); exit(EXIT_FAILURE); } printf("%s\n", str); exit(EXIT_SUCCESS); }
Tiskni Sdílej: