将字符串 IP 转换为 IPADDRESS 控件

Posted

技术标签:

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

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

【问题讨论】:

【参考方案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 会在未解决的导入上出错,甚至不会启动您的可执行文件。

以上是关于将字符串 IP 转换为 IPADDRESS 控件的主要内容,如果未能解决你的问题,请参考以下文章

C# IPAddress IPEndPoint

如何将字符串转换为 IP 地址,反之亦然

如何将字符串转换为 IP 地址,反之亦然

C# 中 将IP字符串转换为整型

如何将字符串转换为 System.Net.IPAddress

是否有一个函数可以将 ipAddress 作为字符串并告诉我它是否是不可路由的 IP 地址?