2011-07-01 64 views
4

在家中或在工作中开发应用程序时,我需要评论代码,该代码将代理设置为打开或关闭。因为在家我在不同的网络上工作,在家里我不需要使用代理检测服务器连接到的网络的名称

WebProxy proxy = new WebProxy(Settings.ProxyAddress, Settings.ProxyPort); 
proxy.Credentials = CredentialCache.DefaultCredentials; 
this.Proxy = proxy; 

我想将此语句包装在确定网络名称的if子句中。像

if(isCorporateNetwork) {.....set proxy...}; 

我试图检测到它:

IPGlobalProperties.GetIPGlobalProperties().DomainName; 

但是,这会导致一个空字符串。可能因为我的个人笔记本电脑不是域的成员(但是对网络的访问是通过发送我的凭据到代理授权,自己的设备被允许使用公司网络这种方式。)

如何检测,我连接到网络的名称?

回答

1

尝试使用DNS查找您的IP地址。 (如果你有一个专用的IP,你需要通过STUN或相似,以获得公众)

(这只是一种不同的方法,因为你似乎是要走的路:How to find FQDN of local machine in C#/.NET ?

+0

如果我需要一个公网IP我需要首先访问代理服务器;)这不就像将它封装在try catch和retry中一样吗? –