以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 关于服务器双IP问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=138128) |
-- 作者:有点蓝 -- 发布时间:2019/7/23 15:31:00 -- If e.Name = "数据源名称" Then msgbox(Network.Ping("192.168.1.100",1000)) msgbox(Network.Ping("119.75.217.56",1000)) If Network.Ping("192.168.1.100",1000) = False Then \'如果第一个IP无法接通 e.ConnectionString = e.ConnectionString.Replace("192.168.1.100", "119.75.217.56") End If End If 这个2个地址都能访问吗? 内网用户和服务器是在同一个网段吗,能ping的通服务器内网IP吗
|
-- 作者:有点蓝 -- 发布时间:2019/7/23 16:14:00 -- 这样判断http://www.foxtable.com/webhelp/topics/2709.htm If TryConnectHost("192.168.1.100") Then
If Network.Ping("192.168.1.100") Then e.ConnectionString = e.ConnectionString.Replace("192.168.1.100", "119.75.217.56") End If End If |
-- 作者:有点蓝 -- 发布时间:2019/7/23 16:44:00 -- 怎么判断的?完整代码贴出来 |
-- 作者:hahaman -- 发布时间:2019/7/23 16:45:00 -- 给你一个另外的解决方法。在很多场景下都可以使用。通过域名链接,外网解析到:114.114.114.114,内网路由器强制解析到192.168.1.111(类似本地host)。我感觉还挺方便的。 |
-- 作者:有点蓝 -- 发布时间:2019/7/23 17:40:00 -- If e.Name = "ProductionBOM" Then If TryConnectHost("192.168.1.3") = false orelse Network.Ping("192.168.1.3") = false Then e.ConnectionString = e.ConnectionString.Replace("192.168.1.3", "192.168.99.99") End If End If
|
-- 作者:shenyl0211 -- 发布时间:2019/7/23 21:17:00 -- 千万不要用Replace。关于这个问题,帮助文档很不贴实际。 IP就两个:内网和外网。 外网容易变化。一是因为网络运营商变IP,二是因为单位换网络运营商而变IP,三是因为设备调试的问题而临时变IP,四是因为变更服务器而变IP。 内网的变化也有可能。一是因为异地的子分公司有服务器,且内网IP地址一样,故必须修改一个IP;二是因为变更服务器而变IP。 以上变更IP的情况我都遇到过了。 由此可知,为了不因此而专门升级管理系统,就必须通过IP地址.txt文件进行管理,该文件的内容就是两个IP,用符号(,、;、|)分隔。用户修改IP地址.txt文件是很方便的。 实际编程的时候,需要先Ping内网IPa(IP地址.txt文件的第一个IP),因为Ping内网IPa是很快的,而且,内网用户也较多,特别是领导较多。Ping通了,IP就用IPa,否则就Ping外网IPb(IP地址.txt文件的第二个IP),Ping通了,IP就用IPb,Ping不同就是网络有问题。 另外,实际工作中,不仅有数据源的连接问题,还有FTP的设置问题,所以,需要用IPa和IPb变量。
|