文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>get ethernet interface address

get ethernet interface address

时间:2007-01-24  来源:只爱殷澍蕾

#include <netinet/in.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <stdlib.h>
#include <net/if.h>
#include <stdio.h>

void err_sys(const char *errmsg);

int main(int argc, char **argv)
{
    struct ifreq ifr;        /** interface structure **/
    struct sockaddr_in *sin;    /** IPv4 socket address structure **/
    int sockfd;            /** UDP socket descriptor **/
    char addr[INET_ADDRSTRLEN];    /** store interface address **/

    /**create UDP socket **/
    if ((sockfd = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP)) == -1)
        err_sys("socket error");
    
    /** get interface address **/
    strcpy(ifr.ifr_name, "eth0");        /**ethernet interface **/
    if (ioctl(sockfd, SIOCGIFADDR, &ifr) == -1)
        err_sys("ioctl error");
   
    sin = (struct sockaddr_in *) (&ifr.ifr_addr);
    if (inet_ntop(AF_INET, &sin->sin_addr, addr, sizeof(addr)) == NULL)
        err_sys("inet_ntop error");
    else
        printf("interface address: %s\n", addr);

    exit(0);
}

void err_sys(const char *errmsg)
{
    perror(errmsg);

    exit(1);
}

   
       

   

 
相关阅读 更多 +
排行榜 更多 +
味子夫

味子夫

购物比价 下载
恩猫

恩猫

购物比价 下载
街头纷争

街头纷争

动作格斗 下载