C# 根据局域网IP获取主机名称

代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;

namespace ConsoleTest
{
    
class Program
    {
        
static void Main(string[] args)
        {
            
string hostName=GetHostNameByIp("10.10.66.118");
            Console.Write(hostName);
        }
        
#region 根据局域网IP获取主机名称
        
public static string GetHostNameByIp(string ip)
        {
            ip 
= ip.Trim();
            
if (ip == string.Empty)
                
return string.Empty;
            
try
            {
                
// 是否 Ping 的通
                if (Ping(ip))
                {
                    System.Net.IPHostEntry host 
= System.Net.Dns.GetHostEntry(ip);
                    
return host.HostName;
                }
                
else
                    
return string.Empty;
            }
            
catch (Exception)
            {
                
return string.Empty;
            }
        }
        
public static bool Ping(string ip)
        {
            System.Net.NetworkInformation.Ping p 
= new System.Net.NetworkInformation.Ping();
            System.Net.NetworkInformation.PingOptions options 
= new System.Net.NetworkInformation.PingOptions();
            options.DontFragment 
= true;
            
string data = "Test Data!";
            
byte[] buffer = Encoding.ASCII.GetBytes(data);
            
int timeout = 1000// Timeout 时间,单位:毫秒
            System.Net.NetworkInformation.PingReply reply = p.Send(ip, timeout, buffer, options);
            
if (reply.Status == System.Net.NetworkInformation.IPStatus.Success)
                
return true;
            
else
                
return false;
        }
        
#endregion
    }
}
原文地址:https://www.cnblogs.com/gb2013/p/1682838.html