首页 > 后端开发 > C++ > 如何在C#中高效获取服务器的内部和外部IP地址?

如何在C#中高效获取服务器的内部和外部IP地址?

DDD
发布: 2025-01-26 06:06:08
原创
447 人浏览过

How to Efficiently Get a Server's Internal and External IP Address in C#?

在C#中高效获取服务器内部和外部IP地址

在网络管理或应用程序调试过程中,经常需要获取服务器的IP地址。本文旨在阐明语法并提供一种优化的方法来检索此信息。

获取外部IP地址的语法

要确定计算机的外部IP地址(对互联网可见),请使用以下代码:

<code class="language-csharp">string externalIP = new WebClient().DownloadString("https://ipv4.icanhazip.com/");</code>
登录后复制

此代码利用“iCanHazIP”服务来获取服务器的公共IP地址。

获取内部IP地址的语法

要检索服务器的内部IP地址(在本地网络内),请使用以下技术:

<code class="language-csharp">string localIP = Dns.GetHostEntry(Dns.GetHostName()).AddressList.Where(ip => ip.AddressFamily == AddressFamily.InterNetwork).FirstOrDefault()?.ToString();</code>
登录后复制

此代码迭代与服务器主机名关联的IP地址列表,并选择与IPv4地址族对应的地址。

对先前代码的分析

问题中提供的代码是一种有效的方法,但可以增强其可读性和效率。以下修改后的版本包含这些改进:

<code class="language-csharp">string localIP = null;
var host = Dns.GetHostEntry(Dns.GetHostName());
foreach (var ip in host.AddressList)
{
    if (ip.AddressFamily == AddressFamily.InterNetwork)
    {
        localIP = ip.ToString();
        break;
    }
}</code>
登录后复制

此版本使用更清晰的循环结构,并对FirstOrDefault()可能返回null的情况进行了处理,避免了潜在的异常。 它直接迭代IP地址列表,找到第一个IPv4地址后立即退出循环,提高了效率。

以上是如何在C#中高效获取服务器的内部和外部IP地址?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板