ZBLOG

如何获取IP

在C++中,使用Boost.Asio库可以很方便地获取本机的IP地址。以下是一个简单的示例代码,演示如何获取并打印本机的IPv4地址:

#include <iostream>
#include <boost/asio.hpp>

int main() {
    boost::asio::io_context io_context;

    // 获取主机名称
    std::string host_name = boost::asio::ip::host_name();

    // 使用 resolver 来解析主机名
    boost::asio::ip::tcp::resolver resolver(io_context);
    boost::asio::ip::tcp::resolver::results_type endpoints = resolver.resolve(host_name, "");

    std::cout << "Local IP addresses for " << host_name << ":\n";
    
    // 打印所有的IP地址
    for (const auto& endpoint : endpoints) {
        std::cout << endpoint.endpoint().address().to_string() << "\n";
    }

    return 0;
}

代码说明:

  1. 包含Boost.Asio头文件。
  2. 创建io_context对象来管理异步操作。
  3. 获取主机名并通过解析器将其解析为IP地址。
  4. 遍历所有解析得到的端点,并打印出每个IP地址。

编译与运行:

确保你已安装了Boost库,然后使用如下命令编译和运行:

g++ -o get_ip get_ip.cpp -lboost_system -lpthread
./get_ip

这样就会显示本机的IPv4地址。如果需要获取IPv6地址,可以调整相应部分,将tcp替换为udp或者直接用相应的IPv6类型。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:http://sdn.0voice.com/?id=7877

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?