首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果用户连接到我们的广域网,最简单的测试方法是什么?

如果用户连接到我们的广域网,最简单的测试方法是什么?
EN

Stack Overflow用户
提问于 2012-07-18 16:51:55
回答 2查看 2.3K关注 0票数 1

有点背景。我在一家拥有全球广域网的公司工作。外部用户通过VPN连接到它,并且必须连接到它,这样才能访问他们的电子邮件,当然还有共享的网络目录。

我有一个.Net应用程序是发布和安装从我们的网站使用ClickOnce。用户既可以为公司工作,也可以不为公司工作,用户可以访问该应用程序,并将请求发送到web服务,web服务也会发布到web服务器。

由于这个问题范围以外的原因,当用户试图登录应用程序时,他们应该通过显式引用服务器的计算机名称(即http://**server**/webservice/ws.asmx)连接到web服务服务器。如果用户没有连接到我们的广域网,他们需要通过我们的网址(即https://**www.companywebsite.com**/webservice/ws.asmx)访问它。

我知道如何动态地设置与web服务相关联的URL。我的问题是,我想不出一种快速、可靠和简单的方法来测试广域网连接。

最初,我尝试用相当短的超时时间向服务器发送ping请求(使用.Net Ping类)。但是,当未连接到WAN时,对服务器调用ping操作将返回一个异常,该异常状态为

在Ping请求期间发生了一次盗用事件。

下面是与测试WAN连接的属性关联的代码。这很简单,但当我在我们的网络上测试时,它总是给我上面的信息。

代码语言:javascript
复制
public static bool ConnectedToWAN
{
  get
  {
    try
    {
      Ping ping = new Ping();
      PingReply reply = ping.Send("server", 2000);
      return reply.Status == IPStatus.Success;
    } 
    catch (Exception e) 
    {/* ' An exeception occurred during the Ping request.' */};
  }

我不希望基于我得到的异常返回我的连接状态。相反,我会对可以验证连接的网络进行显式调用。

一个简短的提示,我不能检查用户的IP。我们的一些用户为拥有广域网的其他组织工作。因为我在.Net WinForms应用程序中检查他们的IP,所以他们的IP地址有可能与他们的广域网相关联。相反,我需要检查和看看他们是否专门连接到我们的广域网,而不仅仅是任何广域网。

我该怎么做?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-18 17:46:32

我认为问题是,如果公司网络内存在连接,而不是公共访问的internet,则需要解析主机名。

如果是这样的话,您可以使用DNS.BeginGetHostEntry并使用异步方法获取指定主机的域名系统。

e.g

代码语言:javascript
复制
var host = '**Internal Server Name**';
Boolean isWANConnected = false;
String ConnectMessage ;
AsyncCallback callBack = new AsyncCallBack(GetHostName);
Dns.BeginGetHostEntry(host, callBack, host);

static void GetHostName(IAsyncResult result)
{
  string hostname = (string)result.AsyncState;
  try
  {
     IPHostEntry host = Dns.EndGetHostEntry(result)
     ConnectMessage = host as String;
  }
  catch(SocketException e)
  {
    isWANConnected = false;
    ConnectMessage = e.Message;
  }
}
票数 1
EN

Stack Overflow用户

发布于 2012-07-18 16:55:07

不是在广域网上的用户能解析那个服务器IP吗?如果没有,则可以使用DNS查询来确定您所在的位置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11546460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档