目前我们使用花生壳解析从外面可以访问我们的服务器,现在需要做一个客户端WIN程序,怎样连接我们服务器的SQL数据库。
希望各位高手不吝辞教!
31 个解决方案
#1
没有人知道了吗?
#2
直接用花生壳提供的地址阿,比如xxx.vicp.net,这样放到连接串中就可以了
#3
乖,这能实现吗?
强烈关注
强烈关注
#4
没有公网IP是不行的。
#5
如果没有公网IP,那就在网关映射一个端口到1433吧
#6
这样也可以??
#7
To:timiil(小华)
能不能说明白点
能不能说明白点
#8
1、数据库服务器直接使用公网IP(包括映射),客户端编程语言支持使用域名,在连接串中直接使用xxx.vicp.net。
2、数据库服务器直接使用公网IP(包括映射),客户端编程语言不支持直接使用xxx.vicp.net域名,只支持使用IP:在客户端先使用ping xxx.vicp.net得到服务器IP地址(可做成批处理,使用快捷方式,双击即可得到IP地址,对客户端复杂度增加不大),将IP地址填入客户端win程序,连接串使用填入的IP地址。
3、数据库服务器不直接使用公网IP(使用内网IP,无映射),可安装VPN服务器(使用公网IP和内网IP,花生壳客户端装此,win2000s单、双网卡都可,w2003s好象必须双网卡),VPN服务器与数据库服务器在同一局域网段,客户端选使用虚拟拨号连接(使用xxx.vicp.net)连接至VPN服务器,一旦连上,客户端与数据库服务器在逻辑上即在同一局域网段,客户端win程序可直接使用数据库服务器的内网IP连接SQL。
第三种方式安全程度最高,使用w2000server做VPN服务器,配置好后,VPN服务器在公网IP上将只有1723端口打开,病毒与黑客极难侵入,成本也不高,VPN服务器与客户端VPN连接配置网上详细介绍有大把。
2、数据库服务器直接使用公网IP(包括映射),客户端编程语言不支持直接使用xxx.vicp.net域名,只支持使用IP:在客户端先使用ping xxx.vicp.net得到服务器IP地址(可做成批处理,使用快捷方式,双击即可得到IP地址,对客户端复杂度增加不大),将IP地址填入客户端win程序,连接串使用填入的IP地址。
3、数据库服务器不直接使用公网IP(使用内网IP,无映射),可安装VPN服务器(使用公网IP和内网IP,花生壳客户端装此,win2000s单、双网卡都可,w2003s好象必须双网卡),VPN服务器与数据库服务器在同一局域网段,客户端选使用虚拟拨号连接(使用xxx.vicp.net)连接至VPN服务器,一旦连上,客户端与数据库服务器在逻辑上即在同一局域网段,客户端win程序可直接使用数据库服务器的内网IP连接SQL。
第三种方式安全程度最高,使用w2000server做VPN服务器,配置好后,VPN服务器在公网IP上将只有1723端口打开,病毒与黑客极难侵入,成本也不高,VPN服务器与客户端VPN连接配置网上详细介绍有大把。
#9
用花生壳提供的地址是可以访问服务器,但是直接连接数据库是不行的。
#10
TO:hzy_dl(爱好)
照你的说法就是没有公网IP必须用VPN?可是我这里不适合用VPN就真的没有别的办法了?
照你的说法就是没有公网IP必须用VPN?可是我这里不适合用VPN就真的没有别的办法了?
#11
好象端口映谢,好象可以
#12
????
不可以做成Web Service吗?这样可以访问数据库了!
不可以做成Web Service吗?这样可以访问数据库了!
#13
你的客户端win程序对IP的要求是怎样的?自己输入IP地址或域名?
#14
不用VPN,随便找个Port Tunnel就行了
#15
ADSL现在给我动态分配了一个IP是:221.226.199.65;可是这个是连不上的,我们还有一个路由器内网IP是192.168.0.1,现在我要访问192.168.0.3机器(服务器)上的数据库。
怎么实现?分不是问题,希望大家多提想法,分不够另开帖。
怎么实现?分不是问题,希望大家多提想法,分不够另开帖。
#16
如果是路由器拨号上网,而路由器有DMZ功能,在路由器里将DMZ主机设置192.168.0.3,win客户端可直接使用221.226.199.65连接上数据库。
#17
如果使用端口映射,映射范围比较大,可能需要映射从1025-10000端口,没有使用过端口映射软件,我看到的几个映射软件不能将指范围,只能逐一指定单个端口号。
#18
路由器如有端口映射功能,且可指定触发端口,可将1433映射到192.168.0.3,触发范围设置1025-10000或更大,win客户端可直接使用221.226.199.65连接上数据库。没有试过,理论上可行。
#19
支持花生壳!
#20
你可以这样,当这个客户端启动的时候调用一个bat文件,在bat文件中用dos来ping你的花生壳的域名,然后获得的ip写入一个文本,然后进行分析,把ip读出来写入你的软件中
#21
有路由器就在路由器上设置虚拟服务器做端口映射,从电脑拨的就用Port Tunnel做端口映射,然后在数据库服务器上起一个花生壳,客户端就可以通过花生壳地址直接访问数据库了
#22
TO:hzy_dl(爱好)
我以前不知道设置路由器,现在是可以了;
不过我还有一个问题就是,比如说现在的IP是221.226.199.65,但是明天可能变成了221.226.199.1
但是我们在Web里面用花生壳是可以访问网站(lk.2mydns.com),这里不能写成Data Source=lk.2mydns.com,1433;Network Library=DBMSSOCN;Initial Catalog=DB;User ID=sa;Password=;
只能写Data Source=221.226.199.65,1433;Network Library=DBMSSOCN;Initial Catalog=DB;User ID=sa;Password=;
就是你上面写的:
只支持使用IP:在客户端先使用ping xxx.vicp.net得到服务器IP地址(可做成批处理,使用快捷方式,双击即可得到IP地址,对客户端复杂度增加不大),将IP地址填入客户端win程序,连接串使用填入的IP地址。
程序中怎么实现?
我以前不知道设置路由器,现在是可以了;
不过我还有一个问题就是,比如说现在的IP是221.226.199.65,但是明天可能变成了221.226.199.1
但是我们在Web里面用花生壳是可以访问网站(lk.2mydns.com),这里不能写成Data Source=lk.2mydns.com,1433;Network Library=DBMSSOCN;Initial Catalog=DB;User ID=sa;Password=;
只能写Data Source=221.226.199.65,1433;Network Library=DBMSSOCN;Initial Catalog=DB;User ID=sa;Password=;
就是你上面写的:
只支持使用IP:在客户端先使用ping xxx.vicp.net得到服务器IP地址(可做成批处理,使用快捷方式,双击即可得到IP地址,对客户端复杂度增加不大),将IP地址填入客户端win程序,连接串使用填入的IP地址。
程序中怎么实现?
#23
TO:sj_breezerain(breeze-rain)
能否把你如何根据网址得到IP地址的详细过程说一下,或者给点代码
能否把你如何根据网址得到IP地址的详细过程说一下,或者给点代码
#24
具体代码我没有,我只是有这个想法,然后我问了我同事,他曾经做过类似的东西,他说可以的.
我想你利用dos的ping命令是可以得到当前ip的.然后把出现在dos窗口的那些字符全部写入一个文本文件:
Pinging www.online.sh.cn [218.1.64.33] with 32 bytes of data:
Reply from 218.1.64.33: bytes=32 time=16ms TTL=248
Reply from 218.1.64.33: bytes=32 time<10ms TTL=248
Reply from 218.1.64.33: bytes=32 time<10ms TTL=248
Reply from 218.1.64.33: bytes=32 time=15ms TTL=248
Ping statistics for 218.1.64.33:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 16ms, Average = 7ms
你要的就是这个:218.1.64.33
不好意思我只是初学的,能不能帮到你我就不清楚了!:(
我想你利用dos的ping命令是可以得到当前ip的.然后把出现在dos窗口的那些字符全部写入一个文本文件:
Pinging www.online.sh.cn [218.1.64.33] with 32 bytes of data:
Reply from 218.1.64.33: bytes=32 time=16ms TTL=248
Reply from 218.1.64.33: bytes=32 time<10ms TTL=248
Reply from 218.1.64.33: bytes=32 time<10ms TTL=248
Reply from 218.1.64.33: bytes=32 time=15ms TTL=248
Ping statistics for 218.1.64.33:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 16ms, Average = 7ms
你要的就是这个:218.1.64.33
不好意思我只是初学的,能不能帮到你我就不清楚了!:(
#25
如果使用C#做客户端,它可以自己使用DNS解析得到IP地址。
string IPstring;
string HostName="xxx.vicp.net";
System.Net .IPAddress IP;
System.Net .IPHostEntry IPEntry;
IPEntry=System.Net .Dns.Resolve(HostName);
IP=IPEntry.AddressList [0];
IPstring=IP.ToString ();
连接串="Data Source="+IPstring+",1433;Network Library=DBMSSOCN;Initial Catalog=DB;User ID=sa;Password=";
如果客户端语言不支持DNS解析,通过操作员手工运行批处理(即Ping命令),看到IP地址,然后在程序的登录窗口设置一服务器IP地址文本框,操作员手工将看到的IP地址填入,连接串再使用手工填入的IP地址,当然应当也可象sj_breezerain(breeze-rain)所说,程序调用批处理Ping,批处理结果进入另一文件,程序再分析此文件得到IP,好象比较复杂。
string IPstring;
string HostName="xxx.vicp.net";
System.Net .IPAddress IP;
System.Net .IPHostEntry IPEntry;
IPEntry=System.Net .Dns.Resolve(HostName);
IP=IPEntry.AddressList [0];
IPstring=IP.ToString ();
连接串="Data Source="+IPstring+",1433;Network Library=DBMSSOCN;Initial Catalog=DB;User ID=sa;Password=";
如果客户端语言不支持DNS解析,通过操作员手工运行批处理(即Ping命令),看到IP地址,然后在程序的登录窗口设置一服务器IP地址文本框,操作员手工将看到的IP地址填入,连接串再使用手工填入的IP地址,当然应当也可象sj_breezerain(breeze-rain)所说,程序调用批处理Ping,批处理结果进入另一文件,程序再分析此文件得到IP,好象比较复杂。
#26
TO:sj_breezerain(breeze-rain)
非常感激你,你说的这个我知道,能不能问你同事讲点具体实现啊。
非常感激你,你说的这个我知道,能不能问你同事讲点具体实现啊。
#27
UP
#28
还有一种方法,服务器需直接拨号上网(通过路由器没有处理过),编一程序运行于服务器,得到自己的公网IP,将IP发送一邮箱,客户端从邮箱取得服务器当前IP地址。
#29
up
#30
必须保证sql服务器启动之前服务器已经连接到internet,不然是连不上的
#31
当formload时调用外部的程序,在delphi中是exec(*.bat),在c#中不太清楚,在bat文件中有ping 你的域名>>*.txt,你应该读取Pinging www.online.sh.cn [218.1.64.33] with 32 bytes of data:这一行.然后用split得到218.1.64.33] with 32 bytes of data:,再用split得到218.1.64.33.这是我同事说得,你看看吧!
#1
没有人知道了吗?
#2
直接用花生壳提供的地址阿,比如xxx.vicp.net,这样放到连接串中就可以了
#3
乖,这能实现吗?
强烈关注
强烈关注
#4
没有公网IP是不行的。
#5
如果没有公网IP,那就在网关映射一个端口到1433吧
#6
这样也可以??
#7
To:timiil(小华)
能不能说明白点
能不能说明白点
#8
1、数据库服务器直接使用公网IP(包括映射),客户端编程语言支持使用域名,在连接串中直接使用xxx.vicp.net。
2、数据库服务器直接使用公网IP(包括映射),客户端编程语言不支持直接使用xxx.vicp.net域名,只支持使用IP:在客户端先使用ping xxx.vicp.net得到服务器IP地址(可做成批处理,使用快捷方式,双击即可得到IP地址,对客户端复杂度增加不大),将IP地址填入客户端win程序,连接串使用填入的IP地址。
3、数据库服务器不直接使用公网IP(使用内网IP,无映射),可安装VPN服务器(使用公网IP和内网IP,花生壳客户端装此,win2000s单、双网卡都可,w2003s好象必须双网卡),VPN服务器与数据库服务器在同一局域网段,客户端选使用虚拟拨号连接(使用xxx.vicp.net)连接至VPN服务器,一旦连上,客户端与数据库服务器在逻辑上即在同一局域网段,客户端win程序可直接使用数据库服务器的内网IP连接SQL。
第三种方式安全程度最高,使用w2000server做VPN服务器,配置好后,VPN服务器在公网IP上将只有1723端口打开,病毒与黑客极难侵入,成本也不高,VPN服务器与客户端VPN连接配置网上详细介绍有大把。
2、数据库服务器直接使用公网IP(包括映射),客户端编程语言不支持直接使用xxx.vicp.net域名,只支持使用IP:在客户端先使用ping xxx.vicp.net得到服务器IP地址(可做成批处理,使用快捷方式,双击即可得到IP地址,对客户端复杂度增加不大),将IP地址填入客户端win程序,连接串使用填入的IP地址。
3、数据库服务器不直接使用公网IP(使用内网IP,无映射),可安装VPN服务器(使用公网IP和内网IP,花生壳客户端装此,win2000s单、双网卡都可,w2003s好象必须双网卡),VPN服务器与数据库服务器在同一局域网段,客户端选使用虚拟拨号连接(使用xxx.vicp.net)连接至VPN服务器,一旦连上,客户端与数据库服务器在逻辑上即在同一局域网段,客户端win程序可直接使用数据库服务器的内网IP连接SQL。
第三种方式安全程度最高,使用w2000server做VPN服务器,配置好后,VPN服务器在公网IP上将只有1723端口打开,病毒与黑客极难侵入,成本也不高,VPN服务器与客户端VPN连接配置网上详细介绍有大把。
#9
用花生壳提供的地址是可以访问服务器,但是直接连接数据库是不行的。
#10
TO:hzy_dl(爱好)
照你的说法就是没有公网IP必须用VPN?可是我这里不适合用VPN就真的没有别的办法了?
照你的说法就是没有公网IP必须用VPN?可是我这里不适合用VPN就真的没有别的办法了?
#11
好象端口映谢,好象可以
#12
????
不可以做成Web Service吗?这样可以访问数据库了!
不可以做成Web Service吗?这样可以访问数据库了!
#13
你的客户端win程序对IP的要求是怎样的?自己输入IP地址或域名?
#14
不用VPN,随便找个Port Tunnel就行了
#15
ADSL现在给我动态分配了一个IP是:221.226.199.65;可是这个是连不上的,我们还有一个路由器内网IP是192.168.0.1,现在我要访问192.168.0.3机器(服务器)上的数据库。
怎么实现?分不是问题,希望大家多提想法,分不够另开帖。
怎么实现?分不是问题,希望大家多提想法,分不够另开帖。
#16
如果是路由器拨号上网,而路由器有DMZ功能,在路由器里将DMZ主机设置192.168.0.3,win客户端可直接使用221.226.199.65连接上数据库。
#17
如果使用端口映射,映射范围比较大,可能需要映射从1025-10000端口,没有使用过端口映射软件,我看到的几个映射软件不能将指范围,只能逐一指定单个端口号。
#18
路由器如有端口映射功能,且可指定触发端口,可将1433映射到192.168.0.3,触发范围设置1025-10000或更大,win客户端可直接使用221.226.199.65连接上数据库。没有试过,理论上可行。
#19
支持花生壳!
#20
你可以这样,当这个客户端启动的时候调用一个bat文件,在bat文件中用dos来ping你的花生壳的域名,然后获得的ip写入一个文本,然后进行分析,把ip读出来写入你的软件中
#21
有路由器就在路由器上设置虚拟服务器做端口映射,从电脑拨的就用Port Tunnel做端口映射,然后在数据库服务器上起一个花生壳,客户端就可以通过花生壳地址直接访问数据库了
#22
TO:hzy_dl(爱好)
我以前不知道设置路由器,现在是可以了;
不过我还有一个问题就是,比如说现在的IP是221.226.199.65,但是明天可能变成了221.226.199.1
但是我们在Web里面用花生壳是可以访问网站(lk.2mydns.com),这里不能写成Data Source=lk.2mydns.com,1433;Network Library=DBMSSOCN;Initial Catalog=DB;User ID=sa;Password=;
只能写Data Source=221.226.199.65,1433;Network Library=DBMSSOCN;Initial Catalog=DB;User ID=sa;Password=;
就是你上面写的:
只支持使用IP:在客户端先使用ping xxx.vicp.net得到服务器IP地址(可做成批处理,使用快捷方式,双击即可得到IP地址,对客户端复杂度增加不大),将IP地址填入客户端win程序,连接串使用填入的IP地址。
程序中怎么实现?
我以前不知道设置路由器,现在是可以了;
不过我还有一个问题就是,比如说现在的IP是221.226.199.65,但是明天可能变成了221.226.199.1
但是我们在Web里面用花生壳是可以访问网站(lk.2mydns.com),这里不能写成Data Source=lk.2mydns.com,1433;Network Library=DBMSSOCN;Initial Catalog=DB;User ID=sa;Password=;
只能写Data Source=221.226.199.65,1433;Network Library=DBMSSOCN;Initial Catalog=DB;User ID=sa;Password=;
就是你上面写的:
只支持使用IP:在客户端先使用ping xxx.vicp.net得到服务器IP地址(可做成批处理,使用快捷方式,双击即可得到IP地址,对客户端复杂度增加不大),将IP地址填入客户端win程序,连接串使用填入的IP地址。
程序中怎么实现?
#23
TO:sj_breezerain(breeze-rain)
能否把你如何根据网址得到IP地址的详细过程说一下,或者给点代码
能否把你如何根据网址得到IP地址的详细过程说一下,或者给点代码
#24
具体代码我没有,我只是有这个想法,然后我问了我同事,他曾经做过类似的东西,他说可以的.
我想你利用dos的ping命令是可以得到当前ip的.然后把出现在dos窗口的那些字符全部写入一个文本文件:
Pinging www.online.sh.cn [218.1.64.33] with 32 bytes of data:
Reply from 218.1.64.33: bytes=32 time=16ms TTL=248
Reply from 218.1.64.33: bytes=32 time<10ms TTL=248
Reply from 218.1.64.33: bytes=32 time<10ms TTL=248
Reply from 218.1.64.33: bytes=32 time=15ms TTL=248
Ping statistics for 218.1.64.33:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 16ms, Average = 7ms
你要的就是这个:218.1.64.33
不好意思我只是初学的,能不能帮到你我就不清楚了!:(
我想你利用dos的ping命令是可以得到当前ip的.然后把出现在dos窗口的那些字符全部写入一个文本文件:
Pinging www.online.sh.cn [218.1.64.33] with 32 bytes of data:
Reply from 218.1.64.33: bytes=32 time=16ms TTL=248
Reply from 218.1.64.33: bytes=32 time<10ms TTL=248
Reply from 218.1.64.33: bytes=32 time<10ms TTL=248
Reply from 218.1.64.33: bytes=32 time=15ms TTL=248
Ping statistics for 218.1.64.33:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 16ms, Average = 7ms
你要的就是这个:218.1.64.33
不好意思我只是初学的,能不能帮到你我就不清楚了!:(
#25
如果使用C#做客户端,它可以自己使用DNS解析得到IP地址。
string IPstring;
string HostName="xxx.vicp.net";
System.Net .IPAddress IP;
System.Net .IPHostEntry IPEntry;
IPEntry=System.Net .Dns.Resolve(HostName);
IP=IPEntry.AddressList [0];
IPstring=IP.ToString ();
连接串="Data Source="+IPstring+",1433;Network Library=DBMSSOCN;Initial Catalog=DB;User ID=sa;Password=";
如果客户端语言不支持DNS解析,通过操作员手工运行批处理(即Ping命令),看到IP地址,然后在程序的登录窗口设置一服务器IP地址文本框,操作员手工将看到的IP地址填入,连接串再使用手工填入的IP地址,当然应当也可象sj_breezerain(breeze-rain)所说,程序调用批处理Ping,批处理结果进入另一文件,程序再分析此文件得到IP,好象比较复杂。
string IPstring;
string HostName="xxx.vicp.net";
System.Net .IPAddress IP;
System.Net .IPHostEntry IPEntry;
IPEntry=System.Net .Dns.Resolve(HostName);
IP=IPEntry.AddressList [0];
IPstring=IP.ToString ();
连接串="Data Source="+IPstring+",1433;Network Library=DBMSSOCN;Initial Catalog=DB;User ID=sa;Password=";
如果客户端语言不支持DNS解析,通过操作员手工运行批处理(即Ping命令),看到IP地址,然后在程序的登录窗口设置一服务器IP地址文本框,操作员手工将看到的IP地址填入,连接串再使用手工填入的IP地址,当然应当也可象sj_breezerain(breeze-rain)所说,程序调用批处理Ping,批处理结果进入另一文件,程序再分析此文件得到IP,好象比较复杂。
#26
TO:sj_breezerain(breeze-rain)
非常感激你,你说的这个我知道,能不能问你同事讲点具体实现啊。
非常感激你,你说的这个我知道,能不能问你同事讲点具体实现啊。
#27
UP
#28
还有一种方法,服务器需直接拨号上网(通过路由器没有处理过),编一程序运行于服务器,得到自己的公网IP,将IP发送一邮箱,客户端从邮箱取得服务器当前IP地址。
#29
up
#30
必须保证sql服务器启动之前服务器已经连接到internet,不然是连不上的
#31
当formload时调用外部的程序,在delphi中是exec(*.bat),在c#中不太清楚,在bat文件中有ping 你的域名>>*.txt,你应该读取Pinging www.online.sh.cn [218.1.64.33] with 32 bytes of data:这一行.然后用split得到218.1.64.33] with 32 bytes of data:,再用split得到218.1.64.33.这是我同事说得,你看看吧!