Marian D Marinov ÐÐÐÐÑÐ:

> ÐÑÐÐÐÐÑÐÑÐÐÐÐ ÐÑÐÐÐ ÐÐ ÑÐ ÐÐÐÐÐÑ ÐÐ ÐÐÐÐÐÑÑÐÐ 
> ÐÐÐÐÑÐÐÐÑÐ ÐÐÐÐÐÐÐ ÐÐ ÐÐ ÐÐÑÐÑÐ 
> ÐÐÐ ÐÐ ÑÐÐÐ ÑÐ ÑÐÑÐÑ ÑÐÐÐ ÑÐÐÐ ÐÐÐÐÑÐÑ :) ÐÐÐÑÐ 
> ÐÐ ÐÐÐÐÐÐÐ ÐÐ ÐÐÑÑÐÑÐ ÐÐÑÐÐ 
> ÐÐ ÐÐÑÐÑÐÐÐ ÐÐÐÐ ÑÐÐÐ ÐÑÐÐÑÐÐ ÑÐÑÐÐÑÐÐÐ ÐÐ 
> ÐÐÐÐÐÐÐ ÐÐ ÐÐÐÐÐÐÑÐÐ ÐÐÐÐÐÐÐ ÐÐ 
> ÐÐÑÐÑ ÑÐÑÐÐ ÐÐ firewalls Ð shapers?
> 
> ÐÐÐÐÑÐÐÐ
>       Ð.ÐÐÑÐÐÐÐ

        ÐÐÐÑ ÑÐ ÐÐ Ð ÑÐÐÑÑÐÐ ÑÐÐÐÐÐÐÑÐÐÐÑÐ ÐÐ 
ÐÐÐÐÐÐÐ ÐÐÐÐÐÐÑÐÑÐÐ ÐÐÐÐÑÐ ÐÐ C
ÐÐÑÐÐÐ ÑÐÐÐÑÐ ÐÑÐÑÐÐÐ, ÐÐ ÐÑÐÑÐÐÐ ÑÐÐÐ ÐÑÐ ÐÐÐÐ 
(ÐÐÐÑÑÑÐÐÑÑÐÐ, ÐÐÐ ipv6
Ð Ñ.Ð.) ÐÑÐÐÐÑ ÐÐÐ ÐÑÐÐÑÐÐÐÐ ÐÐÐÐÑ ÐÐ ÑÐ ÐÑÐÐÑÑ 
ÑÐÐÐÐÐ ÐÐÑÐ. ÐÐ ÐÑÐÐÐÐ
ÐÐÐÐ ÐÐ Ð ÐÑ ÐÐÐÐÐ.

ÐÐÐÐÐÐÐÑÐ ÑÐ Ñ "gcc -s -o inetaddrof inetaddrof.c" Ð ÐÐÑÐÐ 
"./inetaddrof
eth0" ÐÐÐÑÐÐÐÑ.
#include <arpa/inet.h>
#include <linux/if.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/ioctl.h>
#include <sys/socket.h>

int main(int ARGC, char *ARGV[])
{
        fclose(stdin);
        if(2 != ARGC)
        {
                fprintf(stderr, "Usage: %s interface_name\n", *ARGV);
                return EXIT_FAILURE;
        }
        if(strlen(*(ARGV + 1)) >= IFNAMSIZ)
        {
                fprintf(stderr, "%s: too long to be an interface name\n", *(ARGV + 1));
                return EXIT_FAILURE;
        }
        int f = socket(PF_INET, SOCK_DGRAM, 0);
        if(-1 == f)
        {
                perror("socket");
                return EXIT_FAILURE;
        }
        struct ifreq ifr;
        strcpy((char*)&ifr, *(ARGV + 1));
        if(-1 == ioctl(f, SIOCGIFADDR, &ifr))
        {
                perror("ioctl");
                return EXIT_FAILURE;
        }
        printf("%s", inet_ntoa(((struct 
sockaddr_in*)&ifr.ifr_ifru.ifru_addr)->sin_addr));
        return EXIT_SUCCESS;
}
  • ... Евгени Каралъмов
    • ... Dragomir Zhelev
      • ... Vasil Kolev
        • ... Vasil Kolev
          • ... Dragomir Zhelev
            • ... Vasil Kolev

Reply via email to