Dle plánu byl vývoj Firefoxu přesunut z Mercurialu na Git. Oficiální repozitář se zdrojovými kódy je na GitHubu.
V terminálovém multiplexoru GNU Screen byly nalezeny a v upstreamu ve verzi 5.0.1 už opraveny bezpečnostních chyby CVE-2025-23395, CVE-2025-46802, CVE-2025-46803, CVE-2025-46804 a CVE-2025-46805. Podrobnosti na blogu SUSE Security Teamu.
Training Solo (Paper, GitHub) je nejnovější bezpečnostní problém procesorů Intel s eIBRS a některých procesorů ARM. Intel vydal opravnou verzi 20250512 mikrokódů pro své procesory.
Byla vydána nová verze 25.05.11 svobodného multiplatformního video editoru Shotcut (Wikipedie) postaveného nad multimediálním frameworkem MLT. Nejnovější Shotcut je již vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.
Svobodný elektronický platební systém GNU Taler (Wikipedie, cgit) byl vydán ve verzi 1.0. GNU Taler chrání soukromí plátců a zároveň zajišťuje, aby byl příjem viditelný pro úřady. S vydáním verze 1.0 byl systém spuštěn ve Švýcarsku.
Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 209. brněnský sraz, který proběhne tento pátek 16. května od 18:00 ve studentském klubu U Kachničky na Fakultě informačních technologií Vysokého učení technického na adrese Božetěchova 2/1. Jelikož se Brno stalo jedním z hlavních míst, kde se vyvíjí open source knihovna OpenSSL, tentokrát se OpenAlt komunita potká s komunitou OpenSSL. V rámci srazu Anton Arapov z OpenSSL
… více »GNOME Foundation má nového výkonného ředitele. Po deseti měsících skončil dočasný výkonný ředitel Richard Littauer. Vedení nadace převzal Steven Deobald.
Byl publikován přehled vývoje renderovacího jádra webového prohlížeče Servo (Wikipedie) za uplynulé dva měsíce. Servo zvládne už i Gmail. Zakázány jsou příspěvky generované pomocí AI.
Raspberry Pi Connect, tj. oficiální služba Raspberry Pi pro vzdálený přístup k jednodeskovým počítačům Raspberry Pi z webového prohlížeče, byla vydána v nové verzi 2.5. Nejedná se už o beta verzi.
Google zveřejnil seznam 1272 projektů (vývojářů) od 185 organizací přijatých do letošního, již jednadvacátého, Google Summer of Code. Plánovaným vylepšením v grafických a multimediálních aplikacích se věnuje článek na Libre Arts.
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: