【问题标题】:Convert String IP to IPADDRESS Control将字符串 IP 转换为 IPADDRESS 控件
【发布时间】:2012-04-19 02:49:58
【问题描述】:

我从 SQL Server 数据库中获得了 IP 地址。 现在我在'char'中有这个IP地址。 但是,我想转换字符串 IP(例如:“127.0.0.1”) 到 IPADDRESS 控件.. 我是PIC HERE 我们是怎么做到的:D?

【问题讨论】:

    标签: c++ winapi visual-c++


    【解决方案1】:

    您可以使用InetPton 函数将其转换为二进制地址,然后可用于设置控件。

    char ip_address_string[] = "127.0.0.1";
    DWORD address;
    
    if (LOBYTE(LOWORD(GetVersion())) >= 6)
    {
        IN_ADDR address_struct;
        InetPtoN(AF_INET, ip_address_string, &address_struct);
    
        address = (DWORD) address_struct.S_un.S_long;
    }
    else
    {
        address = (DWORD) inet_addr(ip_address_string);
    }
    

    现在你可以使用address来初始化控件了。

    【讨论】:

    • 哦,我正要推荐 inet_addr,直到我注意到 InetPton 也支持 IPv6!
    • InetPton 也仅适用于 Vista+。
    • @Deanna 添加了对 Windows 版本的检查,如果版本低于 Vista,则使用 inet_addr
    • 这不是正确的方法。检查没问题,但函数导入在加载时(即运行时之前)解析。这意味着 XP 会在未解决的导入上出错,甚至不会启动您的可执行文件。
    猜你喜欢
    • 1970-01-01
    • 2013-01-08
    • 1970-01-01
    • 2020-10-22
    • 2011-06-12
    • 1970-01-01
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    相关资源
    最近更新 更多