我有一台服务器,我知道它上面安装了Informix
,但我不知道是谁安装了它。有一个封闭的源客户端连接到这个服务器,但除了用户名和密码,我无法得到任何关于它的信息。我不知道如何连接它,我不知道它的端口号和服务器名称是什么。我已经使用SQuirreL
驱动程序下载了JDBC Informix
。
如何在不知道端口和服务器名称的情况下连接到JDBC Informix服务器?
答案 0 :(得分:4)
简而言之,您需要端口号,服务器名称(以及数据库名称)才能连接到Informix。
假设您有权在安装Informix的盒子上搜索,有一些地方可能会找到有关您的Informix服务器的详细信息。由于我没有看到您的案例中安装了IDS(Informix)的平台的任何细节,我将尝试为Unix和Windows平台提供信息。但首先,有点背景知识:
设置与Informix的连接所需的参数不是太多。通常,您只需要:
听起来你需要找出最后三个。
<强> Linux的:强>
在Linux平台上(以及Windows,我相信),有一些环境变量可指向安装Informix系统的位置。其中最重要的是%INFORMIXDIR%,它指向Informix安装的根目录。但是很多时候,Informix安装在 / opt 中,所以试试吧。
典型安装中的%INFORMIXDIR%/ etc 是一个名为sqlhosts的文件(它可能有特定服务器实例的后缀,但它以sqlhosts开头) 。在此文件中是服务器名称,可能还有端口号。 %INFORMIXDIR%/ etc / sqlhosts包含以下格式的纯文本数据:
ServerName NetType HostName Port/ServicesName
第一个值是您寻找的服务器名称。第四个值(Port / ServicesName)是端口号,或 / etc / services 中引用端口号的条目的名称。如果您没有看到端口号,请查看 / etc / services 。
例如,sqlhosts可能包含以下内容:
myservername onsoctcp informix.mydomain.com 12345
在这种情况下,您的服务器名称为&#34; myservername&#34;并且端口是12345
或者,它看起来像这样:
myservername onsoctcp informix.mydomain.com informixservice
在这种情况下,你必须在 / etc / services 中查找一行
informixservice 12345/tcp
会告诉你这个端口。
<强>窗强>
警告:我从未处理过安装在Windows上的Informix服务器,但是根据IBM文档,它对于手头的任务看起来并没有什么不同。
而不是文件%INFORMIXDIR / etc / sqlhosts ,您寻找的信息包含在注册表项中
HKEY_LOCAL_MACHINE\SOFTWARE\INFORMIX\SQLHOSTS
使用regedit.exe读取此条目中存储的值。
如果您在该注册表项中找不到端口号,则Windows的等效于Unix的 / etc / services 文件
C:\Windows\System32\drivers\etc\services
使用文本编辑器检查此文件(记事本工作正常)。
希望这会有所帮助。祝你好运。
答案 1 :(得分:2)
*简答:您不能。*
这种情况涉及安全问题,因此,数据库不会在您的网络上“自我发布”,因为每个人都知道它存在。
如果你需要发现而不联系你的(你的?)环境的管理员,需要使用黑客技术(nmap实用程序已经在这里帮助)发现一些信息(IP,端口),你仍然缺少像这样的信息servername ,协议,用户名和密码。
请注意,因为将记录Informix数据库侦听器的连接尝试。
现在,如果您可以访问数据库所在的服务器,那么您可以查找 sqlhosts 文件并获取所有这些。
另一个更合理的选择是向DBA / Admin询问配置,证明您希望访问的原因。
答案 2 :(得分:0)
您应该添加有关工作环境的更多信息:您的客户端是什么平台,您的服务器是什么平台,您是否可以访问服务器机器等。
如果您知道计算机中的某些内容连接到其他计算机,则可以使用netstat
来发现它。如果你在Linux上工作,那么有-p
选项显示每个连接的pid和应用程序名称。
首先,我们必须发现封闭源客户端的pid:
[root@test1 ~]# ps aux | grep my_app
root 12457 0.0 3.2 3342440 333336 ? Sl Mar06 21:01 java -cp /usr/local/bin/my_app...
现在,当我知道pid时,我可以使用netstat
:
[root@test1 ~]# netstat -tnp | grep 12457
tcp 0 0 ::ffff:169.0.1.71:55850 ::ffff:169.0.1.74:9088 ESTABLISHED 12457/java
从这个输出中我可以看到Infomix可能适用于169.0.1.74机器的9088端口。
在Windows上,您可以使用SysInternals中的TCPView查看类似内容。
在Windows上,您还可以检查ODBC数据源管理器(32位和64位)以查看是否正在使用Informix驱动程序。
答案 3 :(得分:0)
您可以在主机上找到服务器:
onstat -g dis
即使服务器处于脱机状态(或可能已停用),也会列出服务器。
服务器信息位于UNIX / Linux上的/ INFORMIXTMP中,我希望Windows中的C:\下有一个simlar文件夹。