src/DotNetCommon.Core/NetworkHelper.cs
(开头部分) 3KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
namespace DotNetCommon
{
using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Net;
using System.Net.NetworkInformation;
using System.Net.Sockets;
/// <summary>
/// 网络帮助类
/// </summary>
/// <remarks>
/// 功能: 获取计算机全限定域名 <seealso cref="GetFQDN"/>、 获取有效的IP地址 <seealso cref="GetLocalIPAddress"/>、 获取所有的IP地址 <seealso cref="GetLocalIPAddresses()"/>
/// </remarks>
public static class NetworkHelper
{
/// <summary>
/// 获取计算机全限定域名( <c>FQDN</c> ,<c>Fully Qualified Domain Name</c>) <see href="http://stackoverflow.com/questions/804700/how-to-find-fqdn-of-local-machine-in-c-net"/>
/// </summary>
/// <remarks>关于FQDN: <see href="https://baike.baidu.com/item/FQDN/5102541"/></remarks>
/// <returns></returns>
public static string GetFQDN()
{
var domainName = IPGlobalProperties.GetIPGlobalProperties().DomainName;
var hostName = Dns.GetHostName();
domainName = "." + domainName;
if (!hostName.EndsWith(domainName, StringComparison.InvariantCultureIgnoreCase))
{
hostName += domainName;
}
return hostName;
}
/// <summary>
/// 获取本机联网使用的IP地址
/// </summary>
/// <remarks>
/// <see href="http://stackoverflow.com/a/27376368"/>
/// </remarks>
/// <returns></returns>
public static IPAddress GetLocalIPAddress()
{
using var socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, 0);
try
{
// can be any address
socket.Connect("10.0.2.4", 65530);
var endPoint = socket.LocalEndPoint as IPEndPoint;
// ReSharper disable once PossibleNullReferenceException
return IPAddress.Parse(endPoint.Address.ToString());
}
catch (SocketException)
{
return IPAddress.Parse("127.0.0.1");
}
}
后面还有 40 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
