Ubuntu 16.04下,可编译通过:

 #include <stdio.h>
#include <ifaddrs.h>
#include <arpa/inet.h>
#include <cstring> #define MAX_LENGTH 254 int main(void)
{
char ipAddr[MAX_LENGTH]; ipAddr[] = '\0'; struct ifaddrs * ifAddrStruct = NULL;
void * tmpAddrPtr = NULL; if (getifaddrs(&ifAddrStruct) != )
{
//if wrong, go out!
printf("Somting is Wrong!\n");
return -;
} struct ifaddrs * iter = ifAddrStruct; while (iter != NULL) {
if (iter->ifa_addr->sa_family == AF_INET) { //if ip4
// is a valid IP4 Address
tmpAddrPtr = &((struct sockaddr_in *)iter->ifa_addr)->sin_addr;
char addressBuffer[INET_ADDRSTRLEN];
inet_ntop(AF_INET, tmpAddrPtr, addressBuffer, INET_ADDRSTRLEN);
if (strlen(ipAddr) + strlen(addressBuffer) < MAX_LENGTH - )
{
if (strlen(ipAddr) > )
{
strcat(ipAddr, ";");
}
strcat(ipAddr, addressBuffer);
}
else
{
printf("Too many ips!\n");
break;
}
}
//else if (ifaddrstruct->ifa_addr->sa_family == af_inet6) { // check it is ip6 /* deal ip6 addr */
// tmpaddrptr = &((struct sockaddr_in *)ifaddrstruct->ifa_addr)->sin_addr;
// char addressbuffer[inet6_addrstrlen];
// inet_ntop(af_inet6, tmpaddrptr, addressbuffer, inet6_addrstrlen); //}
iter = iter->ifa_next;
}
//releas the struct
freeifaddrs(ifAddrStruct); printf("The ips: %s\n", ipAddr); return ;
}

效果:

Linux C代码 获取IP地址的更多相关文章

  1. linux如何自动获取ip地址

    第一步:激活网卡 系统装好后默认的网卡是eth0,用下面的命令将这块网卡激活. # ifconfig eth0 up 第二步:设置网卡进入系统时启动 想要每次开机就可以自动获取IP地址上网,就要设置网 ...

  2. Linux下Python获取IP地址

    <lnmp一键安装包>中需要获取ip地址,有2种情况:如果服务器只有私网地址没有公网地址,这个时候获取的IP(即私网地址)不能用来判断服务器的位置,于是取其网关地址用来判断服务器在国内还是 ...

  3. CentOS 7如何设置Linux开机自动获取IP地址

    centos7 minimal版默认安装好后没有获取ip地址,需要手动配置.方法如下: 1.输入“ip addr”并按回车键确定,发现无法获取IP(CentOS 7默认没有ifconfig命令),记录 ...

  4. java代码获取ip地址

    public class IpTool { public static void main(String[] args) { IpTool ipTool=new IpTool(); System.ou ...

  5. linux设置自动获取IP地址

    右键单击,选择设置 勾选桥接模式

  6. js获取IP地址方法总结_转

    js代码获取IP地址的方法,如何在js中取得客户端的IP地址.原文地址:js获取IP地址的三种方法 http://www.jbxue.com/article/11338.html 1,js取得IP地址 ...

  7. js获取IP地址的方法小结

    s代码获取IP地址的三种方法,在js中取得客户端的IP地址. 原文地址:http://www.jbxue.com/article/11338.html 1,js取得IP地址的方法一 <scrip ...

  8. 获取ip地址及城市信息

    大家好,今天给大家分享的是一个简单的知识获取登录用户的ip地址及城市信息,lz是一个小白,如果有哪些错误的地方  欢迎大家指出 东西很简单,直接上代码 [HttpPost] public string ...

  9. js获取IP地址多种方法实例教程

    js获取IP地址方法总结   js代码获取IP地址的方法,如何在js中取得客户端的IP地址.原文地址:js获取IP地址的三种方法 http://www.jbxue.com/article/11338. ...

随机推荐

  1. html传参数 js工具类

    var QueryUtils = { GetQueryString: function (name) { var reg = new RegExp("(^|&)" + na ...

  2. QT之Variant

    QVariant识别类型的注册 QVariant识别类型的注册 QVariant为一个万能的数据类型--可以作为许多类型互相之间进行自动转换.将C++变为弱数据类型成为可能--也是许多控件中用户定义数 ...

  3. CodeForces 342A Xenia and Divisors (水题)

    题意:给定 n 个数(小于等于7),让你把它分成 m 组,每组有三个数,且满足,a < b < c,并且 a 能整除 b,b 能整除 c. 析:对于这个题,因为题目说了是不大于7的,那么一 ...

  4. hydra(九头蛇)多协议暴力破解工具

    一.简介 hydra(九头蛇)全能暴力破解工具,是一款全能的暴力破解工具,使用方法简单 二.使用 使用hydra -h 查看基本用法 三.命令 hydra [[[-l LOGIN|-L FILE] [ ...

  5. NSArray去除重复元素

    直接上代码吧! 1.可以创建一个新的数组,对需要去除重复的数组进行遍历,如果新数组不包含就数组,那么添加元素,如果包含就不添加. NSMutableArray *array = [NSMutableA ...

  6. Mysql自动设置时间(自动获取时间,填充时间)

    应用场景: 1.在数据表中,要记录每条数据是什么时候创建的,不需要应用程序去特意记录,而由数据数据库获取当前时间自动记录创建时间: 2.在数据库中,要记录每条数据是什么时候修改的,不需要应用程序去特意 ...

  7. Tomcat安装JPress

    上线代码有两种方式,第一种方式是直接将程序目录放在webapps目录下面,这种方式大家已经明白了,就不多说了.第二种方式是使用开发工具将程序打包成war包,然后上传到webapps目录下面.下面让我们 ...

  8. Java NIO学习-详细内容(三)

    九.nio.file 该包是1.7新出的,包含了一系列高级的文件和目录操作方法 1.控制目录属性,只读,系统之类的 2.监控文件及文件夹的改变的WatchService public void sta ...

  9. Web界面设计(Designing Web Interfaces中文版) (美)斯科特 pdf扫描版​

    Web界面设计是由Bill Scott编著.电子工业出版社出版的一部图书,在Web已经进入崭新的时代的今天,界面的设计显得非常重要,本书就是基于独一无二的Web环境下.在创建丰富体验的过程中设计Web ...

  10. Windows上编译OpenEXR

    注意一定要使用1.0.1版本的ilmbase和1.6.1版本的openexr,其它版本的我测试过,OpenImageIO会编译失败. 解压ilmbase 1.0.1到[工作目录]/openexr/il ...