java获取本机ip地址_代码片段:获取系统所有IP
问题
在Windows系统中,可以支持多个网卡,比如有线的以太网卡,无线网卡,虚拟网卡等。如下图所示:
每一张网卡由不同的类型,也可以分别被用户启用或禁用。
对于单独一张给定的网卡,其IP地址可以是DHCP自动分配,也可以手动设定。
进而,在手动设定模式下,还可以添加多个IP地址。如下图所示:
好像,情况越来越复杂!
那么,如何通过代码的方式来获取所有的这些IP地址呢?
废话少说,直接上代码吧!
代码解析
以上代码结构简单,首先调用GetAdaptersAddresses获取系统所有网卡,然后循环每个网卡。对于每个网卡,通过FirstUnicastAddress成员获取该网卡的起始IP,然后循环获取该网卡的所有IP。
注意,这里通过判断结构体的OperStatus属性,实现了仅获取已启用网卡的IP地址列表并过滤掉了本地回环地址的功能。
注意事项
本文代码仅作为演示目的,并没有配置合理的错误处理功能,在真实的项目中,应该考虑加上。
总结
在C++中获取本机IP地址是一个十分常见的需求,但如果需要这个功能,而手边却没有相关的代码,确实是一件比较伤脑筋的事情。
本文通过定义一个通用的函数展示了如何获取本机所有的IP地址。但是需要说明的是,这个函数并没有通过一个合适的返回值来输出IP地址,可以考虑使用vector列表并配合自定义结构体来对外部输出结果,这样就更具备可重用性了。
Enjoy!
java获取本机ip地址_代码片段:获取系统所有IP相关推荐
- 电子邮件服务器的ip地址_可用的不同类型的IP地址
有几种不同类型的IP地址可用.尽管无论哪种类型,IP地址的结构都是相同的,但它们的作用不同.例如,您有公用IP地址,专用IP地址,静态IP地址和动态IP地址. 动态和静态之间的区别是动态IP地址会更改 ...
- python获取小王的ip地址_用Python获取本机的IP地址
Linux import socket import fcntl import struct def get_ip_address(ifname): s = socket.socket(socket. ...
- 获取访问照片获取ip地址_如何始终获取想要的照片
获取访问照片获取ip地址 There are few things more annoying than getting home after a long day photographing, im ...
- ping不通自己的ip地址_如何批量Ping N个IP地址,掌握一个命令让你节省N小时,让老板给你加鸡腿!...
这是一个信息爆炸的时代,过多无用的信息.公众号只会让我们视觉疲劳.基于这个原因,本公众号致力于为广大网工分享知识.分享招聘信息.传播有价值的信息,运行4年多以来,已慢慢成为网工圈最受信赖的公众号.了解 ...
- jssdk 获取微信收货地址_微信JSSDK获取当前地理位置信息
默认为 wgs84 的 gps 坐标,如果要返回直接给 openLocation 用 的火星坐标,可传入 'gcj02' success: function (res) { var latitude ...
- 常识-java获取本机ipv6地址以及关闭临时ipv6地址
关闭临时ipv6地址 临时ipv6有助于本机安全,然而有时用不到,比如用其进行长久的ftp链接,随时待命是不合适的 右键管理员cmd,输入命令关闭临时ipv6 netsh interface ipv6 ...
- java ip地址查询接口_java获取ip地址与网络接口的方法示例
java获取ip地址与网络接口的方法示例 发布时间:2020-09-20 23:57:52 来源:脚本之家 阅读:66 作者:骏马金龙 java.net包 大家应该都知道,网络相关对象在java.ne ...
- android 获取网卡mac_Android获取本机Mac地址及IP地址方法
1.Android 获取本机Mac 地址方法: 需要在AndroidManifest.xml文件中添加权限: public String getLocalMacAddress() { WifiMan ...
- js获取本机mac地址,IP地址
<!DOCTYPE HTML> <html> <head> <title>js获取本机mac地址,IP地址,计算机名</title> ...
最新文章
- 组合数学实验——二分图匹配算法
- java获取字符串最长_基于java查找最长字符串代码实例
- 上海2021年高考成绩排位查询,2021年上海各高中高考成绩排名及放榜最新消息
- cxf整合spring代码
- FB面经Prepare: Email User
- Nginx的rewrite之rewrite_log指令
- 2020牛客国庆集训派对day4 What Goes Up Must Come Down
- sqlserver 存储过程 增加
- GNU make manual 翻译( 一百一十一)
- redis系列之1----redis简介以及linux上的安装
- IDEA运行test出现 Failed to execute goal org.codehaus.mojo:exec-maven-plugin:16.0.0:exec (default-cli) on
- CUDA ---- Hello World From GPU
- Linux Irq domain
- [C#][算法] 用菜鸟的思维学习算法 -- 马桶排序、冒泡排序和快速排序
- 单片机交通灯实训c语言编程,单片机交通灯程序(C语言).docx
- 鸿蒙子系统解读-Camera子系统篇
- java 案例(售卖橙子)
- python中reduce什么意思_python中的reduce
- 2022-2028年中国SIP行业竞争现状及投资策略研究报告
- 科研篇一:NeurIPS2019 分类整理-对抗样本Meta-Learning