将字符串 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 控件的主要内容,如果未能解决你的问题,请参考以下文章