感谢您阅读我的博客,如果您现在工作、学习累了或者疲惫了,不妨聆听一下音乐,它能够减轻你的疲劳,还能够带给您一种舒适愉悦的心情。如果您认为这篇文章还不错或者有所收获,您可以在页面 右侧和底部 扫描二维码 打赏我,您的鼓励是我继续写作、分享的最大动力!

C#里获取IP地址方法整理【IPV4,IPV6】

using System;

namespace GetIpDemo
{
    /// <summary>
    ///     C#里获取IP地址方法整理【IPV4,IPV6】
    ///     LDH @ 2021-11-19
    /// </summary>
    internal class Program
    {
        private static void Main()
        {
            Console.Title = "C#里获取IP地址方法整理【IPV4,IPV6】";

            var ipv4 = IpAddressHelper.GetIpV4();
            Console.WriteLine("IPV4:" + ipv4);
            PrintLine();

            var ipv6 = IpAddressHelper.GetIpV6();
            Console.WriteLine("IPV6:" + ipv6);
            PrintLine();

            var localIp = IpAddressHelper.GetLocalIp();
            Console.WriteLine("Local IP:" + localIp);
            PrintLine();

            var ip = IpAddressHelper.GetIpAddress();
            Console.WriteLine("IP:" + ip);
            PrintLine();

            var ipStr = "1888.555.666.666";
            var isIp = IpAddressHelper.IsIpStr(ipStr);
            PrintLine();

            if (isIp)
                Console.WriteLine($"{ipStr}是合法的IP");
            else
                Console.WriteLine($"{ipStr}是非法的IP");
            PrintLine();

            Console.ReadKey();
        }

        private static void PrintLine()
        {
            Console.WriteLine("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
        }
    }
}
using System.Net;
using System.Net.Sockets;

namespace GetIpDemo
{
    /// <summary>
    ///     获取IP地址帮助类
    ///     LDH @ 2021-11-19
    /// </summary>
    public class IpAddressHelper
    {
        /// <summary>
        ///     获取本地IP地址信息
        /// </summary>
        public static string GetIpAddress()
        {
            //  获取本地的IP地址
            var addressIp = string.Empty;

            foreach (var ipAddress in Dns.GetHostEntry(Dns.GetHostName()).AddressList)
                if (ipAddress.AddressFamily.ToString() == "InterNetwork")
                    addressIp = ipAddress.ToString();

            return addressIp;
        }

        /// <summary>
        ///     获取IPV4地址
        /// </summary>
        /// <returns>返回IPV4地址</returns>
        public static string GetIpV4()
        {
            // 本机名
            var hostName = Dns.GetHostName();

            // 方法已过期,IPV4地址
            var localhostIpV4 = Dns.GetHostByName(hostName);
            var ipV4Address = localhostIpV4.AddressList[0];

            var ipV4 = ipV4Address.ToString();

            return ipV4;
        }

        /// <summary>
        ///     获取IPV6地址
        /// </summary>
        /// <returns>返回IPV6地址</returns>
        public static string GetIpV6()
        {
            // 本机名
            var hostName = Dns.GetHostName();

            // IPV6 地址
            var localhostIpV6 = Dns.GetHostEntry(hostName);
            var ipV6Address = localhostIpV6.AddressList[0];

            var ipV6 = ipV6Address.ToString();

            return ipV6;
        }

        /// <summary>
        ///     获取本机IP地址
        /// </summary>
        /// <returns>获取本机IP地址</returns>
        public static string GetLocalIp()
        {
            try
            {
                var HostName = Dns.GetHostName(); //得到主机名
                var IpEntry = Dns.GetHostEntry(HostName);
                for (var i = 0; i < IpEntry.AddressList.Length; i++)
                    // 从IP地址列表中筛选出IPv4类型的IP地址
                    //AddressFamily.InterNetwork表示此IP为IPv4,
                    //AddressFamily.InterNetworkV6表示此地址为IPv6类型
                    if (IpEntry.AddressList[i].AddressFamily == AddressFamily.InterNetwork)
                        return IpEntry.AddressList[i].ToString();
            }
            catch
            {
                // ignored
            }

            return string.Empty;
        }

        /// <summary>
        ///     判读是否是IP地址
        /// </summary>
        /// <param name="ipStr">ip字符串</param>
        /// <returns>是否是IP地址</returns>
        public static bool IsIpStr(string ipStr)
        {
            IPAddress ip;
            return IPAddress.TryParse(ipStr, out ip);
        }
    }
}

posted @ 2021-11-19 14:22  Love In Winter  阅读(2149)  评论(1编辑  收藏  举报
作者: LifeDecidesHappiness
出处: http://www.cnblogs.com/LifeDecidesHappiness/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,否则保留追究法律责任的权利,且在文章页面明显位置给出原文连接,如有问题,可以通过以下邮箱地址 2468881301@qq.com  联系我,非常感谢。
踏实做一个为人民服务的搬运工!
如果您认为这篇文章还不错或者有所收获,您可以通过右边的“打赏”功能,您的支持和鼓励是我继续写作、分享的最大动力!

点击关注不迷路,让我带你上高速!