gpt4 book ai didi

c# - 获取本地IP地址

转载 作者:可可西里 更新时间:2023-11-01 08:26:30 26 4
gpt4 key购买 nike

我正在尝试使用 Mono for Android 获取我的 Android 设备的本地 IP 地址,但失败了。

我使用的完整紧凑框架的代码是这样的:

var iplist = (from a in Dns.GetHostAddresses(Dns.GetHostName())
where a.AddressFamily == AddressFamily.InterNetwork
select a).ToArray();
LocalAddress = iplist[0];

但是,在 M4A 下,它会提前下降 - Dns.GetHostName() 调用失败并显示

System.Net.Sockets.SocketException:使用了与请求的协议(protocol)不兼容的地址

M4A 下的 Dns.GetHostName 是否存在已知问题?是否有使用 M4A 获取本地地址的替代方法?

最佳答案

事实证明,这是在 Mono Socket 实现内部抛出的异常,与尝试确定是否支持 IPv6 的运行时有关(source here,撰写本文时的第 810 行)。

第一次尝试在 Mono 下使用任何 Socket 时会抛出异常,可以安全地忽略它。如果您使用调试器运行以“中断所有抛出的异常”(我偶尔会这样做以确保代码整洁),则您必须专门关闭 SocketExceptions 或继续此中断。

关于c# - 获取本地IP地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10046180/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com