以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  openqq的服务器IP地址必须要人工输入吗?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=76662)

--  作者:lake163
--  发布时间:2015/11/3 10:04:00
--  openqq的服务器IP地址必须要人工输入吗?
openQQ需要设置服务器的IP地址,但在有些场合,服务器IP地址会不固定,请问这时有没有办法自动获取IP地址呢?


--  作者:大红袍
--  发布时间:2015/11/3 10:06:00
--  
那你可以不设置,但是,你客户端要连接,肯定要知道服务器的ip地址
--  作者:大红袍
--  发布时间:2015/11/3 10:07:00
--  

外网ip可以如此获取。

 

Dim WinHttpReq As Object = CreateObject("Msxml2.ServerXMLHTTP")
WinHttpReq.Open("GET", "http://www.ip138.com/ip2city.asp")
WinHttpReq.Send
\'正则表达式解析出外网IP
Dim MyRegExp
MyRegExp = CreateObject("VBScript.RegExp")
MyRegExp.Pattern = "((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)"
MyRegExp.IgnoreCase = True
MyRegExp.Global = True
Dim Matches As object = MyRegExp.Execute(WinHttpReq.ResponseText)
Return Matches.Item(0).Value

--  作者:狐表开发
--  发布时间:2015/11/3 10:33:00
--  
用3楼的方式获得了本机的外网IP,在本机用此IP启用QQ Server时出错:

.NET Framework 版本:2.0.50727.3655
Foxtable 版本:2015.11.2.1
错误所在事件:启动IMServer
详细错误信息:
System.Net.Sockets.SocketException: 在其上下文中,该请求的地址无效。
   在 System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
   在 System.Net.Sockets.Socket.Bind(EndPoint localEP)
   在 System.Net.Sockets.UdpClient..ctor(IPEndPoint localEP)
   在 Foxtable.IMServer.Start()

--  作者:大红袍
--  发布时间:2015/11/3 10:52:00
--  

呃,如果你要用外网ip,你必须设置路由器创建端口映射才行。

 

要不你就用内网ip设置吧。


--  作者:狐狸爸爸
--  发布时间:2015/11/3 10:56:00
--  

外网访问内网的OpenQQ服务器,单单做端口映射可能都不行,因为并非只有一个52177端口,还会自动随机使用其他端口,所以只能设置DMZ主机。

最好是有外网服务器。


--  作者:狐表开发
--  发布时间:2015/11/3 11:10:00
--  
图片点击可在新窗口打开查看
--  作者:乡里出城
--  发布时间:2015/11/9 15:24:00
--  
有详细的介绍吗,就像对SQL2008怎么设置一样的指引
--  作者:jpg7
--  发布时间:2015/12/3 14:31:00
--  
同问
--  作者:大红袍
--  发布时间:2015/12/3 14:46:00
--  
以下是引用jpg7在2015/12/3 14:31:00的发言:
同问

 

服务器端不用写ip地址,客户端直接写服务器的ip地址。