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. [GO]使用select实现斐波那契

    package main import "fmt" func fibonacci(ch chan <- int, quit <- chan bool) { x, y : ...

  2. find查找到并删除,替换指定文件

    1.删除/root/work/tomcat/logs/目录下,所有目录. find /root/work/tomcat/logs/* -type d | xargs rm -rf 顺便列一下find的 ...

  3. Git & Github使用总结

    Linux下git的安装 在终端下输入 git , 看系统有没有安装git. 如果没有安装则会出现以下提醒: The program 'git' is currently not installed. ...

  4. $.each()与$(selector).each()区别

    jQuery.each( collection, callback(indexInArray, valueOfElement) )可用于迭代任何集合,无论是“名/值”对象(JavaScript对象)或 ...

  5. hdu2993 MAX Average Problem (斜率dp)

    参考:http://www.cnblogs.com/kuangbin/archive/2012/08/27/2657878.html //#pragma warning (disable: 4786) ...

  6. Android-bindService远程服务启动其他应用的Activity

    Service2应用,在AndroidManifest.xml文件中对外暴露MyService2服务: <!-- 代表在应用程序里,当需要该service时,会自动创建新的进程. android ...

  7. [LeetCode 题解]: Generate Parentheses

    Given n pairs of parentheses, write a function to generate all combinations of well-formed parenthes ...

  8. NET Core 简介

    1. 前言 .NET发行至今已经过了十四个年头.随着版本的不断迭代更新,.NET在Windows平台上的表现也是越来越好,可以说Windows平台上所有的应用类型.NET几乎都能完成. 只是成也Win ...

  9. LA 3708

    题意:       在一个周长为10000的圆上等距分布着n 个雕塑,现在又有m 个新雕塑加入(位置可以随意放置), 希望所有(n+m)个雕塑在圆周上均匀分布,这就需要移动其中一些雕塑,要求n个雕塑移 ...

  10. redis 3.0 集群__数据迁移和伸缩容

    添加节点 1,启动2个新的redis-sever, 参照 ( redis 3.0 集群____安装 ),端口号为 7007 和 7008 2,使用命令 redis-trib.rb add-node 命 ...