zoukankan      html  css  js  c++  java
  • (转载)Linux上编程获取本机IP地址(而不是127.0.0.1)

    (转载)http://blog.sina.com.cn/s/blog_4065d7370100075l.html

    具体代码如下:
    #include <stdio.h>
    #include <stdlib.h>
    #include <sys pes.h>
    #include <sys/socket.h>
    #include <sys/ioctl.h>
    #include <netinet/in.h>
    #include <net/if.h>
    #include <net/if_arp.h>
    #include <arpa/inet.h>
    #include <errno.h>
    #include <unistd.h>
    #include <net/route.h>
    #include <string.h>

    int get_my_address (struct in_addr *addr)
    {
        struct ifreq req;
        int sock;

        sock = socket(AF_INET, SOCK_DGRAM, 0);
        strncpy (req.ifr_name, "eth0", IFNAMSIZ);

        if ( ioctl(sock, SIOCGIFADDR, &req) < 0 )
        {
            printf("failed to ioctl: %s\n", strerror (errno));
            return 0;
        }

        memcpy (addr, &((struct sockaddr_in *) &req.ifr_addr)->sin_addr, sizeof (struct in_addr));
        return 1;
    }


    int main(int argc, char *argv[])
    {

      struct in_addr addr;
      char ip[32];

      if(get_my_address(&addr))
      {
          //strncpy(ip, inet_ntoa(addr), sizeof(struct in_addr));
          printf("IP Address : %s\n",inet_ntoa(addr));
      }

     

      return 0;
    }

  • 相关阅读:
    错误处理
    触发器
    存储过程
    用户自定义函数
    动态 SQL
    临时表
    游标
    流程控制元素
    锁定和阻塞
    Spring内置事件以及自定义事件
  • 原文地址:https://www.cnblogs.com/Robotke1/p/3055765.html
Copyright © 2011-2022 走看看