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 14:44 | Zajímavý projekt

Byla zveřejněna pravidla hackerské soutěže Pwn2Own 2017, jež proběhne od 15. do 17. března v rámci bezpečnostní konference CanSecWes ve Vancouveru. Soutěžit se bude o více než milion dolarů v pěti kategoriích. Letos se bude útočit i na Ubuntu. Jedná se již o 10. ročník této soutěže.

Ladislav Hagara | Komentářů: 0
dnes 13:33 | Nová verze

Po sedmi měsících vývoje od vydání verze 5.7 byla vydána verze 5.8 (YouTube) toolkitu Qt. Z novinek lze zmínit například Qt Lite pro vestavěná zařízení. Nově jsou plně podporovány moduly Qt Wayland Compositor (YouTube) a Qt SCXML (YouTube). Současně byla vydána verze 4.2.1 integrovaného vývojového prostředí (IDE) Qt Creator.

Ladislav Hagara | Komentářů: 0
dnes 11:52 | Pozvánky

Lednový Prague Containers Meetup se koná ve čtvrtek 26. ledna 2017 od 18:00 v Apiary, Pernerova 49, Praha 8. Přijďte se podívat na přednášky o Enterprise Kubernetes a Jenkins as a code.

little-drunk-jesus | Komentářů: 0
dnes 11:40 | Pozvánky

Program letošního ročníku konference Prague PostgreSQL Developer Days, která se koná již 15. a 16. února 2017 na ČVUT FIT, Thákurova 9, Praha 6, byl dnes zveřejněn. Najdete ho na stránkách konference včetně anotací přednášek a školení. Registrace na konferenci bude otevřena zítra (24. ledna) v brzkých odpoledních hodinách.

TomasVondra | Komentářů: 0
včera 02:20 | Zajímavý článek

David Revoy, autor open source webového komiksu Pepper&Carrot nebo portrétu GNU/Linuxu, upozorňuje na svém blogu, že nový Inkscape 0.92 rozbíjí dokumenty vytvořené v předchozích verzích Inkscape. Problém by měl být vyřešen v Inkscape 0.92.2 [reddit].

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

Øyvind Kolås, hlavní vývojář grafických knihoven GEGL a babl, které využívá grafický program GIMP, žádá o podporu na Patreonu. Díky ní bude moci pracovat na vývoji na plný úvazek. Milník 1000 $, který by stačil na holé přežití, se již téměř podařilo vybrat, dalším cílem je dosažení 2500 $, které mu umožní běžně fungovat ve společnosti.

xkomczax | Komentářů: 12
21.1. 23:54 | Pozvánky

DevConf.cz 2017, již devátý ročník jedné z největších akcí zaměřených na Linux a open source ve střední Evropě, proběhne od pátku 27. ledna do neděle 29. ledna v prostorách Fakulty informačních technologií Vysokého učení technického v Brně. Na programu je celá řada zajímavých přednášek a workshopů. Letos je povinná registrace.

Ladislav Hagara | Komentářů: 0
21.1. 22:11 | Nová verze

Byla vydána verze 1.0.0 emulátoru terminálu Terminology postaveného nad EFL (Enlightenment Foundation Libraries). Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
20.1. 17:00 | Nová verze

Byl vydán Docker 1.13. Přehled novinek na YouTube a v poznámkách k vydání na GitHubu. Docker umožňuje běh aplikací v softwarových kontejnerech (Wikipedia).

Ladislav Hagara | Komentářů: 7
20.1. 15:51 | Komunita

Mozilla.cz informuje, že nástroje pro webové vývojáře se možná oddělí od Firefoxu a stanou doplňkem. Nástroje pro webové vývojáře prošly velkým přepisem a tým, který se stará o jejich vývoj, by uvítal možnost jejich častějších aktualizacích nezávisle na vydávání nových verzí Firefoxu.

Ladislav Hagara | Komentářů: 11
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (11%)
 (2%)
 (73%)
 (3%)
 (10%)
Celkem 374 hlasů
 Komentářů: 26, poslední dnes 14:32
Rozcestník
Reklama

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: 144×
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.