通过PHP通过VPN连接到不同网络上的数据库
我们目前有一个过程,用户使用Cisco VPN客户端建立到远程服务器的安全隧道。然后,他们将远程桌面接入远程网络上的一台机器。在远程计算机上,他们启动SQL Server 2008 Enterprise manager,运行生成CSV文件的查询。然后手动将文件传输回其本地计算机 此过程每月只需执行一次,即可从远程机器中提取此CSV报告 传输是IPSec/UDP 我很难通过脚本找到任何帮助。这可能吗?如果不是通过PHP,可能是通过perl或任何服务器端脚本通过PHP通过VPN连接到不同网络上的数据库,php,sql-server,perl,server-side,vpn,Php,Sql Server,Perl,Server Side,Vpn,我们目前有一个过程,用户使用Cisco VPN客户端建立到远程服务器的安全隧道。然后,他们将远程桌面接入远程网络上的一台机器。在远程计算机上,他们启动SQL Server 2008 Enterprise manager,运行生成CSV文件的查询。然后手动将文件传输回其本地计算机 此过程每月只需执行一次,即可从远程机器中提取此CSV报告 传输是IPSec/UDP 我很难通过脚本找到任何帮助。这可能吗?如果不是通过PHP,可能是通过perl或任何服务器端脚本 谢谢。Perl能够做到这一点 尝试将此问
谢谢。Perl能够做到这一点 尝试将此问题分成两部分: 1生成一个CSV文件。 2将此CSV文件移出 第1部分: 您可以使用Perl连接到SQL server,运行查询并生成CSV文件 使用ODBC和DBI进行连接: 用于生成有效的CSV文件 第2部分: 2.1:您可以设置一个简单的https Web服务器,仅为该CSV文件提供服务。如果需要,您可以在发送之前加密此文件 您可以使用Putty设置SSH Tunel以进一步保护传输: 有了这个,一切都会变得简单: 2.2:您可以在计算机上设置ssh服务器,并使用Putty中的scp.exe复制文件
如果这是你控制的机器,听起来像吗?为什么不做相反的事情,在SQL Server上设置一个作业,让它推送到您可以访问它的地方呢。使用OpenSwan设置一个隧道,然后使用一个简单的PHP代码段访问数据库,这可能是完全可能的,但现在有点超出了这个答案的范围。@hank是的,我们确实控制这台机器,但不是它所在的网络。这是个好主意,我没有想到把数据推给我,而不是拉出来。我想听更多关于这部电影的故事。我要读点书。
use HTTP::Daemon::SSL;
my $server = HTTP::Server::Brick->new(
port => 8889,
daemon_class => 'HTTP::Daemon::SSL',
directory_indexing => 1,
daemon_args => [
SSL_key_file => 'my_ssl_key.pem',
SSL_cert_file => 'my_ssl_cert.pem',
],
);
$server->mount( '/csvfile' => {
path => 'C:/path/to/your/csv/file',
wildcard => 1,
});
# start accepting requests (won't return unless/until process
# receives a HUP signal)
$server->start;