在 windows 下调用 _popen 函数来获取内网 ip 地址
2023-06-13 09:17:27 时间
这个程序不是跨平台的,因为 _popen 是 windows 下的,它不是标准库函数,但 linux 下也有类似的,就叫 popen 。另外, ipconfig 也是 windows 独有的。在 linux 下有一个 ifconfig 。
#include <iostream>
#include <string>
void trimstring(std::string& str)
{
if (!str.empty())
{
str.erase(0, str.find_first_not_of(" "));
str.erase(str.find_last_not_of(" ") + 1);
}
}
std::string getlocalip()
{
std::string ip("127.0.0.1");
std::string ipconfig_content;
FILE* fp = _popen("ipconfig", "r");
if (NULL != fp)
{
char line[4096];
while (NULL != fgets(line, sizeof(line), fp))
{
ipconfig_content += line;
}
auto p = ipconfig_content.rfind("IPv4");
if (p != std::string::npos)
{
auto p2 = ipconfig_content.find(":", p);
if (p2 != std::string::npos)
{
auto p3 = ipconfig_content.find("\n", p2);
if (p3 != std::string::npos)
{
ip = ipconfig_content.substr(p2 + 1, p3 - p2 - 1);
trimstring(ip);
}
}
}
_pclose(fp);
}
return ip;
}
int main()
{
std::cout << getlocalip() << std::endl;
std::cin.get();
}
相关文章
- 未能连接一个windows服务器,Win7出现未能连接一个Windows服务的解决办法
- 什么是虚拟ip地址_虚拟人IP是什么意思
- Windows server 2008 R2 AD升级迁移到windows server 2019
- Windows系统日志分析_windows系统事件日志
- 通过主机名得到对应ip地址_如何查看电脑主机名或Ip地址
- windows grid公共镜像不需要再搞驱动,再搞容易搞坏了
- 【Windows 逆向】使用 CE 工具挖掘关键数据内存真实地址 ( 完整流程演示 | 查找临时内存地址 | 查找真实指针地址 )
- 【Windows 逆向】CE 地址遍历工具 ( CE 结构剖析工具 | 人物数据内存结构 | 人物三维坐标数据分析 )
- 【Windows 逆向】OD 调试器工具 ( CE 工具通过查找访问的方式找到子弹数据基地址 | 使用 OD 工具附加游戏进程 | 在 OD 工具中查看子弹数据地址 | 推荐 )
- 【Windows 逆向】OD 调试器工具 ( 分析 OD 硬件断点处的关键代码 | 添加硬件断点 | 关键代码 | MOV 指令 | EAX 寄存器值分析 | 使用命令查看 esi+0cc 地址 )
- 【Android Gradle 插件】自定义 Gradle 插件模块 ③ ( Gradle 插件模块发布配置 | Windows 本地 Maven 仓库地址 | 将插件上传到本地 Maven 仓库 )
- 为 Linux 机器配置双 IP 地址(linux设置两个ip)
- 安装初体验:Windows下MySQL环境搭建(windows安装mysql数据库)
- 从Windows传输文件至Linux(windows传文件到linux)
- 与windows结合Linux与Windows:使用一个桥梁(怎么连接linux)
- Oracle 更改 IP 地址的操作指南(oracle改ip)
- Windows下安装MySQL数据库系统指南(windows安装mysql)
- 在Windows系统下安装MySQL数据库(windows下安装mysql)
- 和windows比较Octave在Linux和Windows上的性能(octavelinux)
- 版Linux AT:秒杀Windows节约等待时间(linuxat秒)
- Windows系统如何访问Linux共享文件夹(windows访问linux共享文件夹)
- 实现无缝连接:Linux远程桌面Windows,保持高效办公(linux远程桌面windows)
- Linux 下 IP 地址配置实践(ip地址配置linux)
- 如何在 Linux 中查看 IP 地址?(linux查看ip)
- 切换双系统:Linux与Windows的交互(linux和windows双系统)
- Windows和Linux:异曲同工的计算机操作系统(windows和linux的区别)
- Linux优越于Windows:更安全、更稳定、更灵活(linux比windows的优势)
- 在 Windows 环境下使用 Redis 的指南(win下使用Redis)
- 放在windows上Windows上安装Redis的步骤(如何把redis的exe)