Linux C代码 获取IP地址
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地址的更多相关文章
- linux如何自动获取ip地址
第一步:激活网卡 系统装好后默认的网卡是eth0,用下面的命令将这块网卡激活. # ifconfig eth0 up 第二步:设置网卡进入系统时启动 想要每次开机就可以自动获取IP地址上网,就要设置网 ...
- Linux下Python获取IP地址
<lnmp一键安装包>中需要获取ip地址,有2种情况:如果服务器只有私网地址没有公网地址,这个时候获取的IP(即私网地址)不能用来判断服务器的位置,于是取其网关地址用来判断服务器在国内还是 ...
- CentOS 7如何设置Linux开机自动获取IP地址
centos7 minimal版默认安装好后没有获取ip地址,需要手动配置.方法如下: 1.输入“ip addr”并按回车键确定,发现无法获取IP(CentOS 7默认没有ifconfig命令),记录 ...
- java代码获取ip地址
public class IpTool { public static void main(String[] args) { IpTool ipTool=new IpTool(); System.ou ...
- linux设置自动获取IP地址
右键单击,选择设置 勾选桥接模式
- js获取IP地址方法总结_转
js代码获取IP地址的方法,如何在js中取得客户端的IP地址.原文地址:js获取IP地址的三种方法 http://www.jbxue.com/article/11338.html 1,js取得IP地址 ...
- js获取IP地址的方法小结
s代码获取IP地址的三种方法,在js中取得客户端的IP地址. 原文地址:http://www.jbxue.com/article/11338.html 1,js取得IP地址的方法一 <scrip ...
- 获取ip地址及城市信息
大家好,今天给大家分享的是一个简单的知识获取登录用户的ip地址及城市信息,lz是一个小白,如果有哪些错误的地方 欢迎大家指出 东西很简单,直接上代码 [HttpPost] public string ...
- js获取IP地址多种方法实例教程
js获取IP地址方法总结 js代码获取IP地址的方法,如何在js中取得客户端的IP地址.原文地址:js获取IP地址的三种方法 http://www.jbxue.com/article/11338. ...
随机推荐
- IDEA设置与快捷键记录
一:代码提示大小写设置 二:设置代码检查等级 IntelliJ IDEA 对于编辑大文件并没有太大优势,很卡,原因就是它有各种检查,这样是非常耗内存和 CPU 的,所以为了能加快大文件的读写,我一般会 ...
- C#通过Redis实现分布式锁
Redis有三个最基本属性来保证分布式锁的有效实现: 安全性: 互斥,在任何时候,只有一个客户端能持有锁. 活跃性A:没有死锁,即使客户端在持有锁的时候崩溃,最后也会有其他客户端能获得锁,超时机制. ...
- ceph之image(转)
原文地址:http://www.cnblogs.com/sammyliu/p/4843812.html?utm_source=tuicool&utm_medium=referral 2 卷(i ...
- java Long、Integer 、Double、Boolean类型 不能直接比较
测试: System.out.println(new Long(1000)==new Long(1000)); System.out.println(new Integer(1000)==new In ...
- 使用virtualBox安装CentOS 6.3的详细步骤
由于前几天把系统升级到win7了,原先安装的Linux虚拟机都不存在了.基于学习,这次安装选择的是CentOS 6.3版本. 下面就看看具体的安装步骤: 名称可以随便填写,类型选择Linux,版本选择 ...
- CAD&CG GDC 2018大会论文录用名单
Section 1 增强现实与图形学: 报告时间:2018-8-25 14:00-15:30 报告地点:会议室1 P000009 基于增强现实的产品质量信息传递方法 P000104 重彩画的风格转移 ...
- .NET基础 (02).NET运行机制
.NET运行机制1 .NET程序被编译成什么形式的代码2 JIT是如何工作的3 简述程序集的加载机制4 如何配置程序集的版本策略 1 .NET程序被编译成什么形式的代码 .NET程序在编写完成后,会经 ...
- [你必须知道的异步编程]——异步编程模型(APM)
本专题概要: 引言 你知道APM吗? 你想知道如何使用异步编程模型编写代码吗? 使用委托也可以实现异步编程,你知道否? 小结 一.引言 在前面的C#基础知识系列中 介绍了从C#1.0——C#4.0中一 ...
- set集合排序
不仅list是有序集合,set也可以变为有序集合. /** * 给字符串时间的set排序 * @return 有序的set集合 */ public static Set getSort(){ Set& ...
- Mac 上安装python3
1.安装包管理器 去包管理器官网按照提示安装包管理器 Homebrew 2.安装python3 安装完Homebrew ,输入指令安装python3 brew install python3 3.安装 ...