C#实现简单的 Ping 的功能,用于测试网络是否已经联通

C#实现简单的 Ping 的功能,用于测试网络是否已经联通

/// <summary>
/// 是否能 Ping 通指定的主机
/// </summary>
/// <param name="ip">ip 地址或主机名或域名</param>
/// <returns>true 通,false 不通</returns>

public   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;
}
1. 根据 IP地址获得 主机名称
/// <summary>
/// 根据IP地址获得主机名称
/// </summary>
/// <param name="ip">主机的IP地址</param>
/// <returns>主机名称</returns>

public   string  GetHostNameByIp( string  ip)
{
    ip 
= ip.Trim();
    
if (ip == string.Empty)
        
return string.Empty;
    
try
    
{
        
// 是否 Ping 的通
        if (this.Ping(ip))
        
{
            System.Net.IPHostEntry host 
= System.Net.Dns.GetHostEntry(ip);
            
return host.HostName;
        }

        
else
            
return string.Empty;
    }

    
catch (Exception)
    
{
        
return string.Empty;
    }

}

说明:如果你的电脑可以上网你甚至可以查询到: IP地址“64.233.189.104”是 Google 的一个名为“hk-in-f104.google.com”的 主机IP地址。 


关于代码中 this.Ping(ip) 方法后面再说。
既然说了如何“根据 IP地址获得 主机名称”,那就要再说说如何“根据 主机名获得 主机IP地址”吧。

2. 根据 主机名获得 主机IP地址



/// <summary>
/// 根据主机名(域名)获得主机的IP地址
/// </summary>
/// <param name="hostName">主机名或域名</param>
/// <example>GetIPByDomain("pc001"); GetIPByDomain("www.google.com");</example>
/// <returns>主机的IP地址</returns>

public   string  GetIpByHostName( string  hostName)
{
    hostName 
= hostName.Trim();
    
if (hostName == string.Empty)
        
return string.Empty;
    
try
    
{
        System.Net.IPHostEntry host 
= System.Net.Dns.GetHostEntry(hostName);
        
return host.AddressList.GetValue(0).ToString();
    }

    
catch (Exception)
    
{
        
return string.Empty;
    }

}

说明:如果你的电脑可以上网你甚至可以查询到:“www.google.com”的 IP地址是“64.233.189.104”。 

最后,再说说C#实现简单的 Ping 的功能,用于测试网络是否已经联通。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值