问候。
我正在从事我公司的项目工作。我们有一个由我们的老技术人员撰写的应用程序 - 他因浏览色情网站工作而被解雇。不幸的是,他随身携带了我们应用程序的源代码,并将外部服务器的IP地址硬编码到其中。我们最近更改了服务器,需要更改应用程序尝试访问数据库的位置。我真的不想重新发明轮子,重新制作应用......
我尝试使用route命令,但没有骰子。
route -p [new server] mask 255.255.255.255 [old server] metric 50 if [interface]
我在新机器的端口80上设置了一个临时网络服务器,在机器的浏览器中键入旧IP地址,并将所述路由添加到其表中,它仍然转到旧服务器。
任何帮助使路线命令工作,或合理的替代方案?例如:重定向的软件,路由器技巧......等等。
答案 0 :(得分:4)
由于IP地址在二进制文件中是硬编码的,因此您可以使用它。它可能表示为四个字节。然后,您可以使用十六进制编辑器将其替换为新的IP地址。
答案 1 :(得分:2)
假设您在路线的某处有iptables防火墙,您可以使用DNAT:
iptables -t nat -A PREROUTING -d [old server] -j DNAT --to-destination [new server]
只要它看到发送到[old server]
的数据包并且具有到[new server]
的有效路由,那么无论你在哪里运行它都无关紧要,这样就可以在运行应用程序的主机上运行,任何中间路由器,或你的边缘防火墙。
当然,您可以随时编辑二进制文件内的地址....
答案 2 :(得分:0)
在您的防火墙/路由器中为该公共IP设置NAT,以便它路由到您的新私有IP。
答案 3 :(得分:0)
您不能像上面提到的那样只向新服务器添加路由,因为在第一个路由器跃点,数据包将路由到旧服务器。
您可以将路由指向本地主机,将旧服务器添加为本地接口上的IP地址,然后编写代理服务器以将请求转发到旧服务器。
最好的选择IMO是弄清楚如何解压缩二进制和十六进制编辑它。你知道它写的是什么语言吗?或致电您的律师获取源代码。 =)
答案 4 :(得分:-1)
使用hosts文件将所有外部IP请求路由到本地IP:http://en.wikipedia.org/wiki/Hosts_(file)