【发布时间】:2011-02-10 19:52:24
【问题描述】:
是否仍然可以使用 inet_ntoa() 而不必担心 Windows 用户权限?如果用户权限阻止我获取接口的 IP 地址,我是否需要在 inet_ntoa() 周围放置一个 try/catch 块来捕获任何可能的问题?
【问题讨论】:
是否仍然可以使用 inet_ntoa() 而不必担心 Windows 用户权限?如果用户权限阻止我获取接口的 IP 地址,我是否需要在 inet_ntoa() 周围放置一个 try/catch 块来捕获任何可能的问题?
【问题讨论】:
inet_ntoa 不会引发异常。如果出现错误,它会返回NULL。
很难看出用户权限是如何进入这个函数的,因为它只是一个整数到字符串的转换。
【讨论】:
inet_ntoa 的 MSDN 文档指出:
如果没有发生错误,inet_ntoa 返回 指向静态缓冲区的字符指针 包含文本地址 标准的“。”符号。否则,它 返回 NULL。
在 Windows Vista 及更高版本上,RtlIpv4AddressToString 函数可用于将表示为 IN_ADDR 结构的 IPv4 地址转换为 Internet 标准点分十进制表示法的 IPv4 地址的字符串表示。
【讨论】: