ubuntu-C++拿到本机IP地址
来源:互联网 发布:网络剧特点是什么 编辑:程序博客网 时间:2024/06/17 06:21
环境
ubuntu 14.04
场景
自动驾驶算法架构中,存在多台机器,通过各台主机的IP确认机器功能,实现多台机器共用同一套代码,实现系统一键启动功能
方法
#include <stdio.h> #include <sys/types.h>#include <ifaddrs.h>#include <netinet/in.h> #include <string.h> #include <arpa/inet.h>#include <boost/property_tree/json_parser.hpp>#include <boost/property_tree/ptree.hpp>#include <iostream>#include <boost/property_tree/ptree.hpp>#include <boost/property_tree/json_parser.hpp>#include <boost/foreach.hpp>#include <string>int main (int argc, const char * argv[]) { struct ifaddrs * ifAddrStruct=NULL; struct ifaddrs * ifa=NULL; void * tmpAddrPtr=NULL; getifaddrs(&ifAddrStruct); for (ifa = ifAddrStruct; ifa != NULL; ifa = ifa->ifa_next) { if (!ifa->ifa_addr) { continue; } if (ifa->ifa_addr->sa_family == AF_INET) { // check it is IP4 // is a valid IP4 Address tmpAddrPtr=&((struct sockaddr_in *)ifa->ifa_addr)->sin_addr; char addressBuffer[INET_ADDRSTRLEN]; inet_ntop(AF_INET, tmpAddrPtr, addressBuffer, INET_ADDRSTRLEN); printf("%s IP Address %s\n", ifa->ifa_name, addressBuffer); } else if (ifa->ifa_addr->sa_family == AF_INET6) { // check it is IP6 // is a valid IP6 Address tmpAddrPtr=&((struct sockaddr_in6 *)ifa->ifa_addr)->sin6_addr; char addressBuffer[INET6_ADDRSTRLEN]; inet_ntop(AF_INET6, tmpAddrPtr, addressBuffer, INET6_ADDRSTRLEN); printf("%s IP Address %s\n", ifa->ifa_name, addressBuffer); } } if (ifAddrStruct!=NULL) freeifaddrs(ifAddrStruct); return 0;}
0 0
- ubuntu-C++拿到本机IP地址
- ubuntu查看本机IP地址
- ubuntu 12.04 查看本机 ip地址
- C程序:获取本机IP地址
- 获得本机IP地址(c语言)
- C/C++获取本机IP地址
- C++/VC 获取本机IP地址
- C#(winfrom)获得本机IP地址
- C语言获取本机IP地址
- 获取本机IP地址 linux c
- C#------如何获取本机IP地址
- C语言 获取本机IP地址,非回环地址
- c/c++ 获取本机的IP和Mac地址
- C# C/S消息传递:获取本机IP地址
- 用c语言得到linux本机的IP地址
- linux c获取本机网卡ip地址
- Linux下C语言获取本机IP地址
- C#Winform获取本机IP地址的解决方案
- Servlet知识点总结
- 信息安全工程师 学习笔记(九)
- 360前端星计划(二)
- 线性表 链表结构的实现
- UIScrollView的多ContentView的问题
- ubuntu-C++拿到本机IP地址
- LeetCode 99. Recover Binary Search Tree Add to List
- css3字体缩放样式-webkit-text-size-adjust的用法详解
- TCP/IP四层模型
- 信息安全工程师 学习笔记(十)
- Python 类中Name mangling和下划线命名
- [codewars]6.给定的一个的阵列和零的等效二进制值转换为整数。
- 深入理解C++强制类型转换
- 0到100的猜数字游戏