如何在 C#/.NET 中查找本地计算机的 FQDN?

2023-11-21

如何在 C# 中获取本地计算机的 FQDN?


注意:此解决方案仅在针对 .NET 2.0(及更高版本)框架时有效。

using System;
using System.Net;
using System.Net.NetworkInformation;
//...

public static string GetFQDN()
{
    string domainName = IPGlobalProperties.GetIPGlobalProperties().DomainName;
    string hostName = Dns.GetHostName();

    domainName = "." + domainName;
    if(!hostName.EndsWith(domainName))  // if hostname does not already include domain name
    {
        hostName += domainName;   // add the domain name part
    }

    return hostName;                    // return the fully qualified name
}

UPDATE

既然很多人评论说萨姆的回答更简洁我决定在答案中添加一些评论。

最需要注意的是我给出的代码是不等同到以下代码:

Dns.GetHostEntry("LocalHost").HostName

虽然在一般情况下,当机器联网并且属于域的一部分时,两种方法通常会产生相同的结果,但在其他情况下,结果会有所不同。

当计算机不属于域时,输出会有所不同。在这种情况下,Dns.GetHostEntry("LocalHost").HostName将返回localhostGetFQDN()上面的方法将返回主机的 NETBIOS 名称。

当查找计算机 FQDN 的目的是记录信息或生成报告时,这种区别很重要。大多数时候,我在日志或报告中使用此方法,随后将其用于将信息映射回特定计算机。如果机器没有联网,localhost标识符是无用的,而名称提供了所需的信息。

因此,最终取决于每个用户哪种方法更适合他们的应用程序,具体取决于他们需要什么结果。但如果说这个答案是错误的,因为不够简洁,那充其量只是肤浅的。

请参阅输出不同的示例:http://ideone.com/q4S4I0

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 C#/.NET 中查找本地计算机的 FQDN? 的相关文章

  • 简单的C问题

    作为我正在进行的项目的一部分 我必须开始学习 C 我已经开始解决其中的 欧拉 问题 并且遇到了麻烦 我必须找到 1000 以下的所有 3 或 5 的倍数之和 有人可以帮助我吗 谢谢 include
  • 在列表中查找匹配项的最简洁方法

    在列表中查找内容的最佳方式是什么 我知道 LINQ 有一些不错的技巧 但我们也可以获取有关 C 2 0 的建议 让我们对这个常见的代码模式进行最佳重构 目前我使用这样的代码 mObjList is a List
  • C/C++ 程序是在 CPU 上运行还是在内核上运行?

    我已经编程很多年了 但有一件事我一直不明白 有两种类型的编程语言 编译型语言和解释型语言 编译型语言首先需要编译成解释型语言 然后才能执行 例如 C C 需要先编译为机器语言 然后才能执行 我的问题来了 谁真正运行已编译的 C C Wind
  • 是否可以通过引用以基类作为参数的函数来传递派生类

    假设我们有一个抽象基类IBase使用纯虚方法 接口 然后我们推导出CFoo CFoo2来自基类 我们有一个知道如何使用 IBase 的函数 Foo IBase input 这些情况下通常的场景是这样的 IBase ptr static ca
  • 如何在Qt中更快地读取数据?

    Qt读取数据库比C 慢吗 我想我错过了一些东西 为了比较阅读速度 我在 Qt 中编写了以下内容 QElapsedTimer t t start int count 0 QString cs Driver SQL Server Server
  • 有没有办法让我的程序用更少的代码运行?

    我为学校作业编写了以下代码 它编译并打印所有正确的消息 但出于我自己的好奇心 我想知道我的代码是否可以缩短并且仍然有效 我尝试了 signal 而不是 sigaction 但我听说 sigaction 比 signal 更受青睐 此外 此任
  • 使用 Process.Start() 打开文件夹时访问被拒绝异常

    我有一个 C 中的 winforms 应用程序 我必须在其中打开某个文件夹 我用 System Diagnostics Process Start pathToFolder 这会导致以下异常 System ComponentModel Wi
  • 对无符号 8 位整数进行左移操作 [重复]

    这个问题在这里已经有答案了 我试图理解 C C 中的移位运算符 但它们给我带来了困难 我有一个无符号 8 位整数 初始化为一个值 例如 1 uint8 t x 1 根据我的理解 它在内存中的表示方式如下 0 0 0 0 0 0 0 1 现在
  • C++ Linux GCC 应用程序中的 GUID

    我有很多服务器运行这个 Linux 应用程序 我希望他们能够生成一个碰撞概率较低的 GUID 我确信我可以从 dev urandom 中提取 128 个字节 这可能没问题 但是有没有一种简单易用的方法来生成与 Win32 更等效的 GUID
  • 是否可以获取指向装箱非托管值类型的指针?

    是否可以获取指向装箱非托管值类型的指针 而无需编写对每个支持的类型进行强制转换的大型 switch 语句 就像是 object val Contains a boxed unmanaged value such as int long by
  • 为什么 .Net 框架指南建议您不要使用 ref/out 参数?

    显然 他们很 混乱 这是认真的原因吗 你还能想到其他的吗 你见过有多少开发人员并不真正理解 ref out 吗 我在真正需要的地方使用它们 但在其他地方则不然 它们通常仅在您想有效返回两个或多个值时才有用 在这种情况下它至少值得thinki
  • 二维数组的列求和

    我有一个IEnumerable
  • 本地主机和 request.Url.Authority

    我的应用程序通过 URL 中的公司标识符分隔用户 company1 app com company2 app com 我正在本地 PC 上进行测试 请求如下 company1 localhost com 但是 我的 request Url
  • 在 OpenGL 中使用不同的着色器程序?

    我必须在 OpenGL 中针对不同的对象使用两个不同的着色器程序 我发现我必须使用glUseProgram 在不同的着色器程序之间切换 但对此没有太多信息 鉴于我有两个用于不同对象的不同着色器程序 如何为每个着色器程序生成和绑定 VAO 和
  • 验证域用户凭据

    我需要一种方法来验证 Windows 上本机 C 的用户 密码对 输入的是用户名和密码 用户可以是 DOMAIN user 格式 基本上我需要编写一个函数 如果用户 密码是有效的本地帐户 则返回 true 第1部分 如果用户 密码在给定的域
  • 更改成员资格、角色等的默认连接字符串

    默认情况下 我的网络应用程序似乎正在使用LocalSqlServer作为用于任何应用程序服务 例如成员资格 角色 身份验证 等 的连接字符串 有什么方法可以更改默认连接字符串应该是什么 默认值是 LocalSqlServer 似乎很随意 我
  • std::iota 的 iota 代表什么?

    我假设 i 是增量 a 是分配 但我无法弄清楚或找到答案 而且 它看起来与非标准非常相似itoa我认为这很令人困惑 C iota is not an acronym or an initialism It is the word iota
  • 如何在您的网站中连接两个人

    有一款名为 Verbosity 的游戏 这是一款有目的的游戏 位于此链接上www gwap com 在游戏中 他们随机连接两个玩家互相玩 游戏是玩家1应该向他的搭档 玩家2 描述一个单词 而玩家2应该猜测这个单词 我正在尝试建立一个网站来执
  • C# 中的快速字符串解析

    在 C 中解析字符串最快的方法是什么 目前我只是使用字符串索引 string index 并且代码运行合理 但我忍不住认为索引访问器所做的连续范围检查必须添加一些东西 所以 我想知道我应该考虑哪些技术来增强它 这些是我最初的想法 问题 使用
  • File.Move 的原子性

    我想将目录中的文件重命名为原子事务 该文件不会更改目录 该路径作为 NTFS 文件系统的 UNC 路径提供 可能位于服务器 03 或 08 上 File Move 对于这些目的来说是原子的吗 例如 它要么成功完成 要么失败 以使原始文件仍然

随机推荐

  • 如何使用mockito验证公共类的静态方法被调用?

    伪代码是这样的 rc SomePublicClass myPublicStaticFunc arg public class SomePublicClass private SomePublicClass public static int
  • 创建过程中忽略 Config.xml

    我在使用命令行工具时遇到问题科尔多瓦 cli 我遵循了从文档 cordova create test com test 测试 在这一步中我要更改的内容www folder 1 将示例网页移至src文件夹 所以内容www are www co
  • git 子模块添加致命错误:不是 Git 存储库

    我对 Git 相当陌生 并尽力寻找有关此问题的一些文档 但无济于事 这是我的命令 git submodule add https github com joliver EventStore git externalsource JOlive
  • IEnumerator 是否有“HasNext”方法?

    使用JavaIterators 我已经用过hasNext确定迭代是否有更多元素的方法 不消耗元素 因此 hasNext就像一个 Peek 方法 我的问题 有没有类似 hasNext or Peek 具有 C 泛型的方法IEnumerator
  • 在 Apple Swift 中,在什么情况下我不想要隐式展开的可选选项?

    我相信我理解为什么可选值很方便 我最好的使用想法是能够返回一个 nil 布尔值 但是在什么情况下我想使用 声明一个包装的可选值 而不是 对于隐式解包的可选 似乎没有必要用 来声明它 然后必须打字 到处都是 而不仅仅是使用 一次 我不想忽视
  • Typescript 中的类型推断与显式类型声明

    我遇到过几个不同的代码实例 其中变量使用显式类型声明 即使推断的类型很明显 例子 loading boolean false or name string John or count number 0 etc TSLint 更喜欢推断类型而
  • Node.js - 使用每秒 5 个请求的 API 限制

    我有一个 脚本 可以对特定 API 执行数千个请求 这个 API 每秒只允许 5 个请求 可能它的测量结果与我不同 提出我正在使用的请求request promise框架 我已经取代了正常的request promise与此功能 const
  • org.hibernate.PropertyAccessException:IllegalArgumentException

    我正在研究 hibernate 映射 除了当 hibernate 尝试将我的对象保留到系统中时遇到的 PropertyAccessException 之外 其他一切都工作正常 下面是堆栈跟踪 org hibernate PropertyAc
  • 使用角色模拟租户

    我们正在开发一个基于 keycloak 5 0 0 的解决方案 我们的客户可以在我们这里创建他们的帐户并管理他们自己的用户 并且仅管理他们的用户 最初我们认为我们可以使用领域来实现这一点 每个客户都有自己的领域 经过初步测试后 我们认为这可
  • Python脚本通过FTP上传文件

    我想编写一个脚本来将文件上传到 FTP 登录系统如何工作 我正在寻找这样的东西 ftp login mylogin ftp pass mypass 以及任何其他登录凭据 Use ftplib 你可以这样写 import ftplib ses
  • 从 gitignore 过滤文件和路径

    我想找到所有文件路径not使用 C 通过 gitignore 或子目录中任何嵌套的 gitignore 文件 进行过滤 这类似于在这里提问关于PHP 我想知道是否有人知道这段代码是否已在网上某处提供 以 C 形式 更新 为了回答我想要这个的
  • 在 SQL 中选择不同的值对

    我有一个 Access 2010 数据库 其中存储源计算机和目标计算机的 IP 地址 如果我的数据库中有以下条目 source destination A B B A A B C D D D 是否有任何查询来选择唯一对 也就是说 查询的输出
  • 在 python 中捕获 Ctrl+C / SIGINT 并优雅地退出多进程[重复]

    这个问题在这里已经有答案了 How do I catch a Ctrl C in multiprocess python program and exit all processes gracefully I need the soluti
  • 如何阻止 Symfony 记录 Doctrine 的 sql 查询?

    我有一个奇怪的问题 当我检查我的app log dev log我可以在我的页面中看到几乎所有的查询dev log正在实时登录 2015 01 27 06 57 22 doctrine DEBUG SELECT t0 username A 2
  • 简单地将 JavaScript 中的 GET 请求获取到 Flask 服务器

    我正在尝试将一些 json 数据从 Flask 服务器显示到我的 html 页面 但我有一个TypeError NetworkError when attempting to fetch resource with a Promise
  • jQuery 从 url 生成面包屑?

    有没有办法让 jQuery 从 url 在页面上生成面包屑 因此 如果网站网址为 mysite com sec1 sec2 page 面包屑会是这样的 首页 gt 第一节 gt 第二节 gt 页码 Thanks 这将创建一个可用于生成面包屑
  • 在共享元素活动转换中对嵌套视图进行动画处理时出现故障?

    我一直在摆弄 Android 5 0 中的新 API 并一直在尝试弄清楚是否可以同时为ViewGroup及其子元素之一在一次操作期间分别作为共享元素活动转换 下面的屏幕截图给出了我想要实现的目标的简化示例 在第一个活动中 深灰色框是View
  • 弹出窗口 ContentSize 在 iOS 8 中没有响应

    我有一段代码如下 self popOverController popoverContentSize CGSizeMake 248 0 216 0 这在 iOS 7 及更低版本中运行良好 但是 它不会响应 iOS 8 中的 CGSizeMa
  • 在 php 中将关联数组转换为其值的简单数组

    我想转换数组 Array category gt category post tag gt post tag nav menu gt nav menu link category gt link category post format g
  • 如何在 C#/.NET 中查找本地计算机的 FQDN?

    如何在 C 中获取本地计算机的 FQDN 注意 此解决方案仅在针对 NET 2 0 及更高版本 框架时有效 using System using System Net using System Net NetworkInformation