IPAddress.Parse("localhost") 抛出错误

Ola*_*son 1 c#

我有一个服务,它接受一个 ip 字符串并尝试将它解析为IPAdress. 一些外部服务可能传入,127.0.0.1但有一些传入localhost,这会导致问题。

所以第一个有效,但第二个抛出错误

try 
{
    var foo = IPAddress.Parse("127.0.0.1");
} 
catch 
{
    Console.WriteLine("parsing failed for foo");
}
        
try 
{
    var bar = IPAddress.Parse("localhost");
} 
catch 
{
    Console.WriteLine("parsing failed for bar");
}
Run Code Online (Sandbox Code Playgroud)

我是否必须检查 ip 字符串是否等于localhost或有什么我可以使用的?

Dam*_*ver 5

如果要解析主机名和 IP 地址,可以将其传递给Dns.GetHostEntry.

作为回报,这会给你一个可能的 IP 地址列表(如果它传递了一个主机名)或一个 IP 地址(如果它传递了一个 IP 地址)