Multimediální server a user space API PipeWire (Wikipedie) poskytující PulseAudio, JACK, ALSA a GStreamer rozhraní byl vydán ve verzi 1.6.0 (Bluesky). Přehled novinek na GitLabu.
UBports, nadace a komunita kolem Ubuntu pro telefony a tablety Ubuntu Touch, vydala Ubuntu Touch 24.04-1.2 a 20.04 OTA-12.
Byla vydána (Mastodon, 𝕏) nová stabilní verze 2.0 otevřeného operačního systému pro chytré hodinky AsteroidOS (Wikipedie). Přehled novinek v oznámení o vydání a na YouTube.
WoWee je open-source klient pro MMORPG hru World of Warcraft, kompatibilní se základní verzí a rozšířeními The Burning Crusade a Wrath of the Lich King. Klient je napsaný v C++ a využívá vlastní OpenGL renderer, pro provoz vyžaduje modely, grafiku, hudbu, zvuky a další assety z originální kopie hry od Blizzardu. Zdrojový kód je na GitHubu, dostupný pod licencí MIT.
Byl představen ICT Supply Chain Security Toolbox, společný nezávazný rámec EU pro posuzování a snižování kybernetických bezpečnostních rizik v ICT dodavatelských řetězcích. Toolbox identifikuje možné rizikové scénáře ovlivňující ICT dodavatelské řetězce a na jejich podkladě nabízí koordinovaná doporučení k hodnocení a mitigaci rizik. Doporučení se dotýkají mj. podpory multi-vendor strategií a snižování závislostí na vysoce
… více »Nizozemský ministr obrany Gijs Tuinman prohlásil, že je možné stíhací letouny F-35 'jailbreaknout stejně jako iPhony', tedy upravit jejich software bez souhlasu USA nebo spolupráce s výrobcem Lockheed Martin. Tento výrok zazněl v rozhovoru na BNR Nieuwsradio, kde Tuinman naznačil, že evropské země by mohly potřebovat větší nezávislost na americké technologii. Jak by bylo jailbreak možné technicky provést pan ministr nijak nespecifikoval, nicméně je známé, že izraelské letectvo ve svých modifikovaných stíhačkách F-35 používá vlastní software.
Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 162 (pdf).
Sdružení CZ.NIC, správce české národní domény, zveřejnilo Domain Report za rok 2025 s klíčovými daty o vývoji domény .CZ. Na konci roku 2025 bylo v registru české národní domény celkem 1 515 860 s koncovkou .CZ. Průměrně bylo měsíčně zaregistrováno 16 222 domén, přičemž nejvíce registrací proběhlo v lednu (18 722) a nejméně pak v červnu (14 559). Podíl domén zabezpečených pomocí technologie DNSSEC se po několika letech stagnace výrazně
… více »Google představil telefon Pixel 10a. S funkci Satelitní SOS, která vás spojí se záchrannými složkami i v místech bez signálu Wi-Fi nebo mobilní sítě. Cena telefonu je od 13 290 Kč.
Byl publikován přehled dění a novinek z vývoje Asahi Linuxu, tj. Linuxu pro Apple Silicon. Fedora 43 Asahi Remix s KDE Plasma už funguje na M3. Zatím ale bez GPU akcelerace. Vývojáře lze podpořit na Open Collective a GitHub Sponsors.
Dobry den, hledal jsem na netu zpusob jak zjistit IP adresu pocitace, nasel jsem dva zpusoby, akorat ze pro Ubuntu to funguje, ale pro debian ne, nevim jestli mam spatne nainstalovany debian, nebo se musi kod nejak upravit.
script:
#!/usr/bin/env python
import socket
hostname = socket.gethostname()
ip = socket.gethostbyname( socket.gethostname() )
print 'Hostname:', hostname
print 'IP adresa:', ip
Ubuntu:
Hostname: Ubuntu8
IP Adresa: 127.0.1.1
Debian:
Traceback (most recent call last):
File "./h", line 5, in <module>
ip = socket.gethostbyname( socket.gethostname() )
socket.gaierror: (-5, 'No address associated with hostname')
jiny zpusob
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <netdb.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int main(void)
{
struct hostent *he;
char buf[80];
if(gethostname(buf,sizeof(buf))==-1) {
perror("gethostname");
exit(1);
}
printf("Host Name: %s\n", buf);
if((he=gethostbyname(buf))==0) {
herror("gethostbyname");
exit(1);
}
printf("Your Host Name: %s\n", he->h_name);
rintf("Your IP Address: %s\n", inet_ntoa(*((struct in_addr *)he->h_addr_list)));
return 0;
}
Ubuntu:
Host name: Ubuntu8
Your Host Name: Ubuntu8
Your IP Address: 127.0.1.1
Debian:
Host Name: debian
gethostbyname: Unknown host
Neco jsem snad prehlednul? jinak oba systemy bezi pres vmware, ale to by snad nemelo delat problem. Diky za pomoc
ip nebo ifconfig by nestacil?
/etc/hosts? Čo majú v /etc/nsswitch.conf? Čo majú v /etc/resolv.conf?
Tiež si uvedom, že jeden systém má viacero sieťových interface-ov (prinajmenošom loopback a sieťová karta) a každý z nich môže (a nemusí) mať jednu, alebo viac IP adries. A tie sa vôbec nemusia zhodovať s tým čo je v /etc/hosts, alebo tým čo hovorí DNS server.
P.S. zváž použitie getaddrinfo()
v /etc/hosts
127.0.0.1 localhost
127.0.1.1 debian.localdomain debian
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
/etc/nsswitch.conf
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.
passwd: compat
group: compat
shadow: compat
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
/etc/resolv.conf
nameserver 212.158.128.2
nameserver 212.158.128.3
socket.gethostname() na Debianu?
tak problem byl v tom ze v /etc/hostname byl nazev debian a v /etc/hosts byl zase nazev debian2, dal jsem stejny nazev a funguje to
priste radsi nebudu menit nastaveni site :), diky za pomoc vsem
to byl vypis z /etc/hosts ale jineho debiana,
127.0.1.1 debian.localdomain debian
ten co delal problem mel
127.0.1.1 debian.localdomain debian2
a v tom byl ten problem, kdyz jsem kdysi menil nazev pocitace, tak v /etc/host name zustal v obou verzich puvodni nazev debian
gethostname(). Ak čírou náhodou vráti "localhost", tak sa to nájde v /etc/hosts a malo by to vrátiť 127.0.0.1. Ak to vráti debian alebo debian.localdomain, tak by to malo vrátiť 127.0.1.1. Ak to vráti niečo iné tak, sa pôjde na DNS server na 212.158.128.2. Keďže v resolv.conf nemáš search, a gethostname() ti nedá doménu, tak sa na tom DNS serveri najskôr nič nenájde a skončí to s chybou.
Takže záleží na tom čo vráti gethostname().
moc jsem tomu nerozumnel, ale ted je mi to trosku jasnejsi, diky za vysvetleni :)
da se nejak jeste zjistit IP adresa pocitace v siti?
ip a ipconfig prikazy bych to mohl ulozit do souboru a pak nacist, ale neni i nejaky jiny zpusob jak s tim rovnou pracovat v programu?
Řešení jsi uvedl sám např. v Pythonu:
ip = socket.gethostbyname("www.google.com")
nebo Bashi:
$ host www.google.com
www.google.com is an alias for www.l.google.com.
www.l.google.com has address 72.14.221.99
www.l.google.com has address 72.14.221.103
www.l.google.com has address 72.14.221.104
A pokud to potřebuješ do proměné v Bashi:
$ IP=$(host www.google.com |tac |head -n1)
$ IP=${IP##* }
$ echo $IP
74.125.39.103
diky, ale chtel jsem IP adresu pocitace v lokalni siti, a jinak to pisu v C
takze chtel jsem v ubuntu(debianu) napsat aplikaci, ktera bude posilat soubor pres sockety po siti, takze budu potrebovat IP adresy klienta a serveru, a nechci je tam zadavat rucne tim ze bude nekde hledat v nastaveni a pak to tam psat, chtel sem si udelat funkci, ktera mi tu adresu zjisti automaticky
chtel jsem to mit tak ze spustim program na serveru, zjisti mi to jeho ip adresu v siti a tu pak napisu do klienta, nic sloziteho
Aha, takže Ti jde asi o to, že server dostane od dhcp pokaždé přidělenou jinou IP, v tom případě Ti řešení i s ukázkou napsal R níže. Dynamické je jenom IP, takže jen zavoláš:
ioctl(fd, SIOCGIFADDR, &ifr);
na zařízení ethX v lokální sítí a přečteš si jeho IP ze struktury:
inet_ntoa(((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr)
Tohle jsi chtěl?
sin_addr.s_addr použij INADDR_ANY a fcí setsockopt() nastav level na SOL_SOCKET, optname na SO_BROADCAST a optval na 1.
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h> /* for strncpy */
#include <sys/ioctl.h>
#include <net/if.h>
#include <arpa/inet.h>
int main()
{
int fd;
struct ifreq ifr;
fd = socket(AF_INET, SOCK_DGRAM, 0);
strncpy(ifr.ifr_name, "eth1", IFNAMSIZ-1);
ioctl(fd, SIOCGIFADDR, &ifr);
close(fd);
printf("%s\n", inet_ntoa(((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr));
return 0;
}
tak uz to funguje :)
lze nejak osetrit vyber sitovky? jestli to je eth0 nebo eth1? pokazde to vraci nejakou ip adresu, ale jen jedna sitovka je pripojena k lokalni siti
route a hned uvidíš které zařízení patří do lokální sítě. Jak se to dělá v C uvidíš přímo ve zdrojáku tohoto příkazu, stačí si stáhnout zdrojáky balíčku net-tools. Případně si můžeš zavolat příkaz route přímo z C a pouze proparsovat jeho výstup.
mohl bys napsat nejaky priklad? moc by mi to pomohlo, nevim jak deklarovat ifr
promin nevsiml jsem si te ukazky, kde najdu presne zarizeni eth0 abych ho mohl vlozit do fd?
/etc/hosts přidej k 127.0.0.1 jméno z /etc/hostname. IP k danému hostname se hledá mimo DNS také v tomto souboru.
ip -o -4 a s dev eth0 | sed 's/.*inet\ \([0-9.]*\)\/.*/\1/'
diky, ale neznas jeste nejaky zpusob jak to dostat do programu a poracovat s tim jako se stringem?
Tiskni
Sdílej: