2010-03-13 31 views
7

我想问2个问题,如果有人可以回复,我会很感激。检查PC是否连接到局域网

  1. 如何检查(使用C#)PC是否连接到LAN?

  2. 如何检查(使用C#)我的电脑连接在局域网或不

+1

请参阅http://stackoverflow.com/questions/314213/checking-network-status-in-c - 如果这并不能完全回答你的问题,你可能想编辑它以使问题#1和#2之间的区别变得明显...... – mdb 2010-03-13 05:57:50

回答

1

使用System.Net.NetworkInformation命名空间平安设施。欲了解更多请参考this link

3

您想使用Ping检查PC是否连接到局域网。这里有一个例子:

var ping = new Ping(); 
var options = new PingOptions { DontFragment = true }; 

//just need some data. this sends 10 bytes. 
var buffer = Encoding.ASCII.GetBytes(new string('z', 10)); 
var host = "127.0.0.1"; 

try 
{ 
    var reply = ping.Send(host, 60, buffer, options); 
    if (reply == null) 
    { 
     MessageBox.Show("Reply was null"); 
     return; 
    } 

    if (reply.Status == IPStatus.Success) 
    { 
     MessageBox.Show("Ping was successful."); 
    } 
    else 
    { 
     MessageBox.Show("Ping failed."); 
    } 
} 
catch (Exception ex) 
{ 
    MessageBox.Show(ex.Message); 
} 

要检查,如果你拥有机器连接,你可以做同样的,你知道应该解决像说的域控制器的地址。

+1

@Thomas即使我从我的PC删除LAN电缆,此代码也能成功发送ping ping – HotTester 2010-03-13 06:09:40

+2

这是因为我仅将127.0.0.1用于说明目的。您需要用网络上的IP替换该IP,例如说一个域控制器。 – Thomas 2010-03-13 16:57:24

7

尝试

System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable() 
+0

是不是应该说,如果你有任何网络连接? – lentinant 2015-09-11 13:33:45