以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]如何判断项目打开运行时处于公司内部局域网还是在外网?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=71860)

--  作者:huangfanzi
--  发布时间:2015/7/19 16:25:00
--  [求助]如何判断项目打开运行时处于公司内部局域网还是在外网?
项目的数据库用的是SQL,服务器上做了端口映射实现的外部网也能访问,为了速度,如果用户打开项目时处于公司局域网内,则连接数据库的字串用局域网的,如果不在公司局域网,就用外网的连接字串,二种连接字串我已掌握,现就是少个思路,我怎么能让项目知道打开时是在什么环境,请老师给个思路。
--  作者:大红袍
--  发布时间:2015/7/19 16:27:00
--  

ping一个内网地址,如果可以ping通的话,就用内网,否则,就用外网。

 

http://www.foxtable.com/help/topics/1401.htm

 

http://www.foxtable.com/help/topics/0682.htm

 


--  作者:huangfanzi
--  发布时间:2015/7/20 9:09:00
--  
老师,我用PING服务器的方法实现了判断当前环境处于内网或外网,但光就PING通服务器地址感觉不可靠,万一我在酒店或网吧中,刚好哪个环境也有与我服务器一样的IP地址,这样会造成判断错误而连不上数据库,能不能实现返回指定IP地址的计算机名字来进一步判断环境,例如我的服务器地址是192.168.1.2,服务器名是 SQLserver,希望既要PING通服务器,并且比对服务器名,二者都满足后才算是在公司内网。
--  作者:大红袍
--  发布时间:2015/7/20 10:40:00
--  

 其实不需要ip地址的,直接ping 计算机名称 也可以。

 

 再说,你可以连数据库啊

 

TryConnect

测试指定的链接字符串能否连通,如果能连通,则返回True,否则返回False。

语法:

TryConnect(ConnectionString)

ConnectionString:要测试的链接字符串。

 

Dim s As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\data\\Northwind.mdb;Persist Security Info=False"
If
Connections.TryConnect(s) = False Then
    MessageBox.Show("数据源无法连通!"
)
End If