zoukankan      html  css  js  c++  java
  • 获取ip地址的两种方法

          通常获取ip地址有两种方法,第一种为借助socket用ioctl的方法读取本机的ip地址,但是由于该方法需要输入接口的名称, 如,eth0,eth1,br0,eth0.97等等,这对于只需要简单的获取本机ip的需求来说还是过于复杂,本为通过gethostname函数和 gethostbyname函数结合,获取本机ip地址则显得更为简单。它的基本原理就是从文件/etc/hosts中读取和你主机名字相匹配的ip地 址。

    示例代码如下:

    #include <netdb.h>

    #include <stdio.h>

    void main(void)

    {

    char buff[20];
    struct hostent * hostaddr;
    struct in_addr addr;

    gethostname(buff, sizeof(buff) ); //获取本机名
    printf("hostname=%s\n",buff);
    hostaddr=gethostbyname(buff); //获取本机ip地址
    memcpy(&addr.s_addr,hostaddr->h_addr_list[0],sizeof(addr.s_addr));
    strcpy(buff,inet_ntoa(addr));
    buff[15]=0;
    fprintf(stderr,"local ip addres=%s\n",buff);
    }

    转自:http://hi.baidu.com/babala520/blog/item/a341b11f64ce5afd1ad57607.html#0

  • 相关阅读:
    R的农场 chebnear
    math
    求平面内最近点对
    字符加密 cipher
    CF448C Painting Fence
    CF264B Good Sequences
    洛谷3166 数三角形
    [NOIP2013] 华容道
    [NOIP2013] 货车运输
    [NOIP2013] 积木大赛
  • 原文地址:https://www.cnblogs.com/ymy124/p/2458546.html
Copyright © 2011-2022 走看看