Linux编程中获取本机IP地址的方法

时间:2015-03-02  来源:技术文章  作者:南京达内

  在Linux编程中,偶尔会遇到需要获取计算机IP的情况。如何获取本机IP地址呢?达内IT培训整理了三种方法作为参考。

  1. 通过gethostname()和gethostbyname()

  #include <stdio.h>

  #include <unistd.h>

  #include <netdb.h>

  #include <sys/socket.h>

  #include <netinet/in.h>

  #include <arpa/inet.h>

  int main() {

  char hname[128];

  struct hostent *hent;

  int i;

  gethostname(hname, sizeof(hname));

  //hent = gethostent();

  hent = gethostbyname(hname);

  printf("hostname: %s/naddress list: ", hent->h_name);

  for(i = 0; hent->h_addr_list[i]; i++) {

  printf("%s/t", inet_ntoa(*(struct in_addr*)(hent->h_addr_list[i])));

  }

  return 0;

  }

  运行:

  [whb@jcwkyl c]$ ./local_ip

  hostname: jcwkyl.jlu.edu.cn

  address list: 10.60.56.90

  2. 通过枚举网卡,API接口可查看man 7 netdevice(代码略)

  3. 打开一个对外界服务器的网络连接,通过getsockname()反查自己的IP

  学习过网络知识的都知道,网络IP地址的设置是非常灵活的,而且普遍允许用户进行个性化设置。linux​编程中遇到必须获取计算机IP的时候,建议将这一选项放到配置文件中,由用户自己来进行选择。更多软件教程>>

  • 上一篇:linux下屏幕截图的十种方法
  • 下一篇:介绍Linux下的几款十六进制编辑器
  • 达内南京新街口中心:南京市玄武区洪武北路121号苏苑大厦5楼  联系电话:025-66610022

    版权所有 南京达内软件有限公司 苏ICP备12008613号-4