abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

dnes 10:22 | Zajímavý článek

Lukáš Růžička v článku Kuchařka naší Růži aneb vaříme rychlou polévku z Beameru na MojeFedora.cz ukazuje "jak si rychle vytvořit prezentaci v LaTeXu, aniž bychom se přitom pouštěli do jeho bezedných hlubin".

Ladislav Hagara | Komentářů: 1
dnes 07:22 | Komunita

Od 26. do 29. října proběhla v Bochumi European Coreboot Conference 2017 (ECC'17). Na programu této konference vývojářů a uživatelů corebootu, tj. svobodné náhrady proprietárních BIOSů, byla řada zajímavých přednášek. Jejich videozáznamy jsou postupně uvolňovány na YouTube.

Ladislav Hagara | Komentářů: 0
včera 19:22 | Nová verze

Ondřej Filip, výkonný ředitel sdružení CZ.NIC, oznámil vydání verze 2.0.0 open source routovacího démona BIRD (Wikipedie). Přehled novinek v diskusním listu a v aktualizované dokumentaci.

Ladislav Hagara | Komentářů: 0
včera 09:22 | Pozvánky

V Praze dnes probíhá Konference e-infrastruktury CESNET. Na programu je řada zajímavých přednášek. Sledovat je lze i online na stránce konference.

Ladislav Hagara | Komentářů: 1
9.12. 20:11 | Nová verze

Byl vydán Debian 9.3, tj. třetí opravná verze Debianu 9 s kódovým názvem Stretch a Debian 8.10, tj. desátá opravná verze Debianu 8 s kódovým názvem Jessie. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 9 a Debianu 8 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.

Ladislav Hagara | Komentářů: 0
9.12. 00:44 | Nová verze

Po 6 měsících vývoje od vydání verze 0.13.0 byla vydána verze 0.14.0 správce balíčků GNU Guix a na něm postavené systémové distribuce GuixSD (Guix System Distribution). Na vývoji se podílelo 88 vývojářů. Přibylo 1 211 nových balíčků. Jejich aktuální počet je 6 668. Aktualizována byla také dokumentace.

Ladislav Hagara | Komentářů: 4
8.12. 21:33 | Nová verze

Po půl roce vývoje od vydání verze 5.9 byla vydána nová stabilní verze 5.10 toolkitu Qt. Přehled novinek na wiki stránce. Současně byla vydána nová verze 4.5.0 integrovaného vývojového prostředí (IDE) Qt Creator nebo verze 1.10 nástroje pro překlad a sestavení programů ze zdrojových kódů Qbs.

Ladislav Hagara | Komentářů: 0
7.12. 11:11 | Komunita

Naprostá většina příjmů Mozilly pochází od výchozích webových vyhledávačů ve Firefoxu. Do konce listopadu 2014 měla Mozilla globální smlouvu se společností Google. Následně bylo místo jedné globální smlouvy uzavřeno několik smluv s konkrétními vyhledávači pro jednotlivé země. V USA byla podepsána pětiletá smlouva s vyhledávačem Yahoo. Dle příspěvku na blogu Mozilly podala společnost Yahoo na Mozillu žalobu ohledně porušení této

… více »
Ladislav Hagara | Komentářů: 0
7.12. 05:55 | Zajímavý článek

V Londýně probíhá konference věnovaná počítačové bezpečnosti Black Hat Europe 2017. Průběžně jsou zveřejňovány prezentace. Videozáznamy budou na YouTube zveřejněny o několik měsíců. Zveřejněna byla například prezentace (pdf) k přednášce "Jak se nabourat do vypnutého počítače, a nebo jak v Intel Management Engine spustit vlastní nepodepsaný kód". Dle oznámení na Twitteru, aktualizace vydaná společností Intel nevylučuje možnost útoku.

Ladislav Hagara | Komentářů: 5
7.12. 04:44 | Komunita

Virtualizační nástroj GNOME Boxy ve Fedoře 27 umožňuje jednoduše stáhnout a nainstalovat Red Hat Enterprise Linux, který je pro vývojáře zdarma. Vývojová verze GNOME Boxy již umožňuje jednoduše stáhnout a nainstalovat další linuxové distribuce. Ukázka na YouTube. Seznam distribucí a jejich verze, nastavení a cesty k ISO obrazům je udržován v knihovně a databázi libosinfo (GitLab).

Ladislav Hagara | Komentářů: 0
Jak se vás potenciálně dotkne trend odstraňování analogového audio konektoru typu 3,5mm jack z „chytrých telefonů“?
 (8%)
 (1%)
 (1%)
 (1%)
 (75%)
 (14%)
Celkem 957 hlasů
 Komentářů: 45, poslední 1.12. 19:00
    Rozcestník

    Dotaz: Ziskani IP v Debian

    24.4.2009 03:51 Tommy.86 | skóre: 4
    Ziskani IP v Debian
    Přečteno: 1389×

    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

    Odpovědi

    H0ax avatar 24.4.2009 06:46 H0ax | skóre: 36 | blog: Odnikud_nikam
    Rozbalit Rozbalit vše Re: Ziskani IP v Debian
    Prikaz ip nebo ifconfig by nestacil? :-)
    LinuxWay | blog |  LiCo
    24.4.2009 11:21 Tommy.86 | skóre: 4
    Rozbalit Rozbalit vše Re: Ziskani IP v Debian

    chtel jsem neco, co by mi primo vyhodilo ve stringu IP adresu, abych s ni mohl dale pracovat

    24.4.2009 07:56 rastos | skóre: 60 | blog: rastos
    Rozbalit Rozbalit vše Re: Ziskani IP v Debian
    Skôr než v kóde by som hľadal problém v konfigurácii tých systémov. Čo majú v /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()
    24.4.2009 11:40 Tommy.86 | skóre: 4
    Rozbalit Rozbalit vše Re: Ziskani IP v Debian

    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

    Fuky avatar 24.4.2009 12:02 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: Ziskani IP v Debian
    Co Ti vrací socket.gethostname() na Debianu?
    24.4.2009 12:16 Tommy.86 | skóre: 4
    Rozbalit Rozbalit vše Re: Ziskani IP v Debian

    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

    24.4.2009 12:22 Tommy.86 | skóre: 4
    Rozbalit Rozbalit vše Re: Ziskani IP v Debian

    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

    24.4.2009 12:22 rastos | skóre: 60 | blog: rastos
    Rozbalit Rozbalit vše Re: Ziskani IP v Debian
    Len pre vysvetlenie:

    Podľa nsswitch.conf sa resolvovanie hostov robí v poradí "najprv súbor potom DNS" - čo je normálne. Teraz záleží na tom, čo vráti 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().
    24.4.2009 12:41 Tommy.86 | skóre: 4
    Rozbalit Rozbalit vše Re: Ziskani IP v Debian

    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?

    Fuky avatar 24.4.2009 14:01 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: Ziskani IP v Debian

    Ř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
    

    Fuky avatar 24.4.2009 14:10 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: Ziskani IP v Debian

    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
    

    24.4.2009 14:21 Tommy.86 | skóre: 4
    Rozbalit Rozbalit vše Re: Ziskani IP v Debian

    diky, ale chtel jsem IP adresu pocitace v lokalni siti, a jinak to pisu v C

     

    Fuky avatar 24.4.2009 14:29 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: Ziskani IP v Debian
    A na základě čeho ji chceš získat, předpokládal jsem, že na základě jména? Více rozeber co potřebuješ, ať zbytečně neřešíme něco jiného. ;-)
    24.4.2009 15:15 Tommy.86 | skóre: 4
    Rozbalit Rozbalit vše Re: Ziskani IP v Debian

    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

    Fuky avatar 24.4.2009 16:21 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: Ziskani IP v Debian

    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?

    Fuky avatar 24.4.2009 16:33 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: Ziskani IP v Debian
    Nebo to můžeš udělat plně automaticky. Z klienta odešleš broadcast na port, na kterém poslouchá server a nemusíš nic řešit. Jako sin_addr.s_addr použij INADDR_ANY a fcí setsockopt() nastav level na SOL_SOCKET, optname na SO_BROADCAST a optval na 1.
    24.4.2009 20:07 Tommy.86 | skóre: 4
    Rozbalit Rozbalit vše Re: Ziskani IP v Debian

    #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

    Fuky avatar 24.4.2009 22:42 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: Ziskani IP v Debian
    Pokud nemáš jasně definováno, že síť kterou vyžaduješ máš nastavenou vždy na stejném eth, tak musíš projet všechny a na základě IP se rozhodnout, které je to správné. Pokud budeme vycházet z toho, že lokální síť je jen jedna a neslouží jako brána ven. Tak se můžeš mrknout na výstup příkazu 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.
    24.4.2009 18:02 Tommy.86 | skóre: 4
    Rozbalit Rozbalit vše Re: Ziskani IP v Debian

    mohl bys napsat nejaky priklad? moc by mi to pomohlo, nevim jak deklarovat ifr

    24.4.2009 18:31 Tommy.86 | skóre: 4
    Rozbalit Rozbalit vše Re: Ziskani IP v Debian

    promin nevsiml jsem si te ukazky, kde najdu presne zarizeni eth0 abych ho mohl vlozit do fd?

    Fuky avatar 24.4.2009 09:29 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: Ziskani IP v Debian
    V Debianu do souboru /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.
    24.4.2009 10:10 R
    Rozbalit Rozbalit vše Re: Ziskani IP v Debian
    Uvedom si jednu vec: "IP adresa pocitaca" je nezmysel! IP adresa je adresa sietoveho rozhrania.
    24.4.2009 11:23 Tommy.86 | skóre: 4
    Rozbalit Rozbalit vše Re: Ziskani IP v Debian

    mas pravdu, ale myslim ze kazdy pochopil o co mi slo :)

    24.4.2009 12:18 prOm3TheuS | skóre: 18 | Praha
    Rozbalit Rozbalit vše Re: Ziskani IP v Debian
    A co třeba takto?

    ip -o -4 a s dev eth0 | sed 's/.*inet\ \([0-9.]*\)\/.*/\1/'
    24.4.2009 12:23 prOm3TheuS | skóre: 18 | Praha
    Rozbalit Rozbalit vše Re: Ziskani IP v Debian
    Ještě jsem zapomněl dodat, že podmínkou je balík iproute2, který bohužel v Debianu standardně není a předpoklad, že "ip adresa počítače", jak už tu někdo kritizoval, bude na rozhraní eth0
    24.4.2009 13:18 Tommy.86 | skóre: 4
    Rozbalit Rozbalit vše Re: Ziskani IP v Debian

    diky, ale neznas jeste nejaky zpusob jak to dostat do programu a poracovat s tim jako se stringem?

    24.4.2009 13:22 NN
    Rozbalit Rozbalit vše Re: Ziskani IP v Debian

    ifconfig eth0 | grep "inet addr" | cut -d: -f2 | cut -d\  -f1

    NN

    24.4.2009 13:24 R
    Rozbalit Rozbalit vše Re: Ziskani IP v Debian
    Toto je styl programovania horsi ako Microsoft. Tebe to sice fungovat bude, ale odkedy sa "ta spravna" IP adresa nachadza vzdy na rozhrani eth0?
    24.4.2009 14:25 prOm3TheuS | skóre: 18 | Praha
    Rozbalit Rozbalit vše Re: Ziskani IP v Debian
    Ano to je pravda, ale on chtěl řešení, tak jsem mu ho dodal a ještě jsem připsal varování, že to bude fungovat je tehdy a tehdy.
    To co tam zkoušel v tom pythonu či céčku je sice krásný a docela i šikovný, ale gethostbyname mu vyhodí něco, co mu nalže /etc/hosts a nebo jeho DNS server.
    Navíc nezapomeňme, že na jednom rozhraní může být navěšeno i několik IP adres. Takže opravdu záleží na konkrétní situaci a potřebě. To, co jsem tu předložil je pouze výtažek z mého bashového firewall skriptu.
    A ještě poslední připomínka - kdybych chtěl nějaký univerzální 100% funkční nástroj na zjištění IP adres počítače, tak bych nepsal jednořádkový příkaz ;-)
    24.4.2009 15:01 R
    Rozbalit Rozbalit vše Re: Ziskani IP v Debian
    Suhlasim, gethostbyname() je tiez zle. Niekde som davnejsie vyhrabal korektne riesenie v C a pouzival som ho, ale teraz to neviem najst. Myslim, ze cez ioctl() sa zistovali interface a cez dalsie ioctl() sa k nim zistovala adresa.
    24.4.2009 15:02 R
    Rozbalit Rozbalit vše Re: Ziskani IP v Debian
    Toto vyzera ako druha cast toho: http://www.geekpage.jp/en/programming/linux-network/get-ipaddr.php

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.