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 01:11 | Nová verze

    Svobodný citační manažer Zotero (Wikipedie, GitHub) byl vydán v nové major verzi 8. Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    včera 16:55 | Nová verze

    Byla vydána verze 1.93.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    včera 14:00 | Komunita

    Svobodný operační systém ReactOS (Wikipedie), jehož cílem je kompletní binární kompatibilita s aplikacemi a ovladači pro Windows, slaví 30. narozeniny.

    Ladislav Hagara | Komentářů: 7
    včera 11:00 | IT novinky

    Společnost Raspberry Pi má nově v nabídce flash disky Raspberry Pi Flash Drive: 128 GB za 30 dolarů a 256 GB za 55 dolarů.

    Ladislav Hagara | Komentářů: 2
    včera 10:22 | Zajímavý software

    Technologie Skip pro multiplatformní mobilní vývoj, která umožňuje vývojářům vytvářet iOS a Android aplikace z jediné Swift a SwiftUI kódové základny, se s vydáním verze 1.7 stala open source.

    Ladislav Hagara | Komentářů: 4
    včera 03:33 | Zajímavý software Ladislav Hagara | Komentářů: 1
    včera 00:11 | Nová verze

    Byla vydána nová major verze 34.0.0 webového prohlížeče Pale Moon (Wikipedie) vycházejícího z Firefoxu. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 1
    21.1. 16:11 | Humor

    Win8DE je desktopové prostředí pro Wayland, inspirované nechvalně proslulým uživatelským rozhraním Metro z Windows 8. Nabízí dlaždicové rozhraní s velkými tlačítky a jednoduchou navigací, optimalizované pro dotyková zařízení. Cílem projektu je přetvořit design operačního systému Windows 8 do funkčního a minimalistického rozhraní vhodného pro každodenní použití na Linuxu.

    NUKE GAZA! 🎆 | Komentářů: 12
    21.1. 14:33 | Nová verze

    Laboratoře CZ.NIC vydaly Datovku 4.28.0 a Mobilní Datovku 2.6.0. Hlavní novinkou je ukládání rozpracovaných datových zpráv do konceptů. Datovka je svobodné multiplatformní aplikace pro přístup k datovým schránkám a k trvalému uchovávání datových zpráv v lokální databázi.

    Ladislav Hagara | Komentářů: 4
    21.1. 14:22 | Zajímavý projekt

    Unix Pipe Game je vzdělávací karetní hra zaměřená na děti a rodiče, která děti učí používat unixové příkazy prostřednictvím interaktivních úkolů. Klíčovým prvkem hry je využití symbolu | pro pipeline neboli 'rouru', který umožňuje propojit výstupy a vstupy jednotlivých unixových příkazů, v tomto případě vytištěných na kartičkách. Předpokládá se, že rodič má alespoň nějaké povědomí o unixových příkazech a jejich provazování pomocí |.

    … více »
    NUKE GAZA! 🎆 | Komentářů: 3
    Které desktopové prostředí na Linuxu používáte?
     (17%)
     (5%)
     (0%)
     (10%)
     (21%)
     (3%)
     (5%)
     (2%)
     (11%)
     (36%)
    Celkem 576 hlasů
     Komentářů: 17, poslední včera 15:24
    Rozcestník

    Dotaz: inet_pton IPv4/IPv6

    9.2.2012 10:16 miso | skóre: 36 | blog: iSCSI_initiator_howto | Praha
    inet_pton IPv4/IPv6
    Přečteno: 248×
    Zdravim,

    rad by som dosiahol nasledovne:

    vstup: IPv4 adresa (10.20.30.40)

    vystup: IPv4 adresa v tvare IPv6 (::ffff:10.20.30.40) tak, ako je uvedene v priklade napr. tu

    Je to vobec mozne pomocou funkcie inet_pton? Zaujima ma to ciste zo zvedavosti, pokial to nejde, workaround nepotrebujem.

    Nasledujuci kod vypise IPv4 adresu v "klasickom" IPv6 tvare (xxxx:xxxx:xxxx:xxxx:xxxx:xxxx), teda nezmyselnu adresu:
    #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);
    }
    
    Project Satan infects Calculon with Werecar virus

    Řešení dotazu:


    Odpovědi

    Řešení 1× (miso (tazatel))
    9.2.2012 14:08 miso | skóre: 36 | blog: iSCSI_initiator_howto | Praha
    Rozbalit Rozbalit vše Re: inet_pton IPv4/IPv6
    Vyriesil som to nasledovne:
    #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);
    }
    
    Project Satan infects Calculon with Werecar virus

    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.