.netcore获取主机名,IpV4和IpV6一系列信息

背景:

最近把项目部署到liunx上运行时候,发现需要更改一些程序里的配置信息,比如数据库是部署在服务器上,我们在本地调试和服务器上运行时候,连接字符串是不一致的,因此需要一个判断条件去全局的不一样的配置,比如我们服务器上的公网ip是不变的,所以我们可以根据ip去做配置或者根据当前运行的主机去判断。

通过代码获取信息:

 string HostName = Dns.GetHostName(); //得到主机名
                IPHostEntry IpEntry = Dns.GetHostEntry(HostName); //通过主机名去获取全部ip信息
                IpEntry.AddressList.Where(x=>x.AddressFamily==AddressFamily.InterNetwork).ToList()
                .ForEach(y=>Console.WriteLine(y)); //获取Ipv4
                IpEntry.AddressList.Where(x => x.AddressFamily == AddressFamily.InterNetworkV6).ToList()
                .ForEach(y => Console.WriteLine(y)); //获取Ipv6
                Console.WriteLine("查看.NetCore运行时本机的操作系统和信息!");
                Console.WriteLine($"Linux:{RuntimeInformation.IsOSPlatform(OSPlatform.Linux)}");
                Console.WriteLine($"OSX:{RuntimeInformation.IsOSPlatform(OSPlatform.OSX)}");
                Console.WriteLine($"Windows:{RuntimeInformation.IsOSPlatform(OSPlatform.Windows)}");
                Console.WriteLine($"系统架构:{RuntimeInformation.OSArchitecture}");
                Console.WriteLine($"系统名称:{RuntimeInformation.OSDescription}");
                Console.WriteLine($"进程架构:{RuntimeInformation.ProcessArchitecture}");
                Console.WriteLine($"是否64位操作系统:{Environment.Is64BitOperatingSystem}");

输出结果:

.netcore获取主机名,IpV4和IpV6一系列信息_第1张图片

你可能感兴趣的:(c#后端技术)