如何使用 Inno Setup 获取本地 IP 地址
如何使用 Inno Setup 获取用户的本地 IP 地址?
我想过使用Win32 API GetIpAddrTable
,但不清楚如何进行调整。
有人还有其他办法吗?或者知道怎么做吗?
How can I get user's local IP address using Inno Setup?
I thought about using Win32 API GetIpAddrTable
, but it is unclear how to make the adjustment.
Dos someone have any other way? Or know how to do it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这取决于您需要 IPv4 地址还是 IPv6 地址。但既然你提到了 GetIpAddrTable 并且它只返回 IPv4 地址,我怀疑这就是你想要的。
每台机器可以有多个本地IP地址。所以我将它们作为
TStringList
返回。我测试的机器有 5 个 IP 地址。
由于 Inno Setup 不支持指针,因此我必须通过缓冲区的字节数组来完成所有操作。
下面的代码是一个完整的 Inno Setup 脚本,演示了如何使用此功能。
It depends on if you want IPv4 address or the IPv6 address. But since you mentioned
GetIpAddrTable
and it only returns IPv4 addresses, I suspect that is what you wanted.Each machine can have more than one local IP address. So I return them as a
TStringList
.The machine I tested the following on had 5 IP addresses.
Since Inno Setup does not support pointers, I had to do everything through an
Array of Byte
for the buffer.The code below is a complete Inno Setup script that demonstrates, how to use this function.
构建一个返回 IP 地址列表的外部 DLL,并在 Inno Setup 脚本中读取该列表。
在本文中,您将找到如何构建 DLL 以及如何调用它的代码示例在 InnoSetup 脚本中。
在这篇文章中,您将了解如何使用 Indy 获取 IP 地址库或普通 WinApi。
Build an external DLL that returns a list of IP addresses and read that list in Inno Setup script.
In this article you will find code example how to build a DLL and how to call it in the InnoSetup script.
In this SO post you will find how to get IP addresses using Indy library or plain WinApi.