以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- [求助]Openqq在服务器上获得IP地址怎么不对? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=102441)
|
-- 作者:新福星
-- 发布时间:2017/6/20 5:58:00
-- [求助]Openqq在服务器上获得IP地址怎么不对?
在服务器上的应用程序在打开OPenQQ 时 用 IPAdress = System.Net.Dns.GetHostByName(HostName).AddressList.GetValue(0) 获取本机地址。以前多台用此种方法获得的IP都是正确的。 而这次获得的IP则是阿里云内网IP,不是外网的IP。并且发现在服务器上ping本机的外网IP竟然是不通的?何故?谢谢
|
-- 作者:有点色
-- 发布时间:2017/6/20 8:56:00
--
1、你为什么要获取外网ip?
2、如果要ping,你应该在别的计算机,比如你自己的计算机ping外网ip地址才对。
3、获取外网ip,参考
Dim WinHttpReq As Object = CreateObject("Msxml2.ServerXMLHTTP") WinHttpReq.Open("GET", "http://1212.ip138.com/ic.asp") WinHttpReq.Send \'正则表达式解析出外网IP Dim str As String = WinHttpReq.ResponseText Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+") If mc.count > 0 Then Return mc(0).value
Else Return Nothing End If
|
-- 作者:新福星
-- 发布时间:2017/6/20 10:43:00
--
为了使服务器打开openqq程序通用化,服务器端打开服务器openqq程序时读取ip地址,并按此地址打开Openqq,并把ip记存到数据库中。客户端打开openqq是读取这个ip。这样就实现了通用化。 为什么在该服务器上使用了公网ip后出错呢?谢谢! 错误信息如下:
错误所在事件:启动IMServer详细错误信息: 在其上下文中,该请求的地址无效。
|
-- 作者:有点色
-- 发布时间:2017/6/20 10:48:00
--
1、服务器端的openqq,不需要填写ip地址的,留空,或者填写0.0.0.0就行了;
2、你的数据库在你的服务器上,还是哪里?知道数据库的ip不就知道了服务器的ip?
3、正确的应该用域名,你的域名固定。你域名绑定哪一个ip地址都可以。
|
-- 作者:新福星
-- 发布时间:2017/6/20 10:50:00
--
Esc服务器有域名么?
|
-- 作者:有点色
-- 发布时间:2017/6/20 10:54:00
--
以下是引用新福星在2017/6/20 10:50:00的发言: Esc服务器有域名么?
你的数据库和你的服务器是同一个ip吗?如果不同,而你的数据库固定ip地址,那可以用数据库保存。
申请域名的话,你需要自己去申请一个,弄一个便宜一点的就好了。
|
-- 作者:新福星
-- 发布时间:2017/6/21 9:28:00
--
IPAdress = System.Net.Dns.GetHostByName(HostName).AddressList.GetValue(0)
用上述语句在有问题的A服务器上得到的IP地址是内网IP,而在另一台阿里云B服务器上得到是本机的公网IP.
在A服务器改用0.0.0.0启动OpenQQ可以执行成功,但是客户端联不上;在A服务器上使用公网IP启动OPenQQ无法成功,反映如下图
此主题相关图片如下:qq截图20170621092401.png
也在联系阿里云客服,他们反映实在是慢。
|
-- 作者:有点色
-- 发布时间:2017/6/21 9:50:00
--
测试了一下,你的32177端口,现在开启了,试试用IP地址不填,端口号用32177
|
-- 作者:新福星
-- 发布时间:2017/6/21 9:53:00
--
32177是手机查询开的端口 这个会有冲突么?
|
-- 作者:有点色
-- 发布时间:2017/6/21 9:54:00
--
那就是你的打开方式不对。为什么32177可以,52177不可以?你肯定没有正确开启
|