通过php从外部连接到本地IP

时间:2016-01-26 06:17:49

标签: php xml soap request vpn

我有:

  1. 连接外部服务器的数据(IP,登录名,密码)。
  2. 从外部服务器到其他计算机准备好VPN隧道。
  3. 本机的本地IP(192.168 .....?wsdl),带有要求的服务包(SOAP查询)。
  4. 任务:将SOAP请求发送到本地IP并进行XML答案。

    我知道如何实现SOAP请求,但我不了解如何使用PHP通过VPN连接本地IP。

    例如,在这里我将XMLHttpRequest()发送给' url'变量。我可以直接访问' url'链接。但是当VPN背后的访问......

    var url = "http://domain.com/MCAExportService/.....asmx";
    
    function getKBM(client_iin) {
    ...
    }
    
    var xmlHTTP = new XMLHttpRequest();
        xmlHTTP.open("POST", url, true);
    ...
        xmlHTTP.send(xml_request);
    

    UPD: 我在外部服务器上配置了LAMP。现在我需要编写一个脚本,它将SOAP请求发送到本地服务器,通过VPN-tunnel与外部服务器连接。 如何使用脚本从External访问本地服务器?然后向它发送请求?

1 个答案:

答案 0 :(得分:0)

如果您的服务器具有简单的单IP地址配置,那么您可能最好对其进行硬编码 - 它是迄今为止最简单的选项。如果你想动态地确定它,这里有一些你希望有用的信息:

$ _ SERVER ['HTTP_HOST']包含在浏览器地址栏中输入的地址,以便访问该页面。如果您通过在浏览器中键入(例如)http://192.168.0.1/index.php来访问该页面,则$ _SERVER ['HTTP_HOST']将为192.168.0.1。 如果您使用DNS名称访问该页面,则gethostbyname($ _ SERVER ['HTTP_HOST']);将该DNS名称转换为IP地址。 $ _SERVER ['SERVER_NAME']包含已在Web服务器配置中配置的名称,作为其服务器名称。如果您打算使用它,您也可以在PHP中对其进行硬编码。 $ _SERVER ['SERVER_ADDR']将包含服务器主IP地址的操作系统。这可能是也可能不是用于访问页面的IP地址,它可能是也可能不是绑定了Web服务器的IP地址。它在很大程度上取决于操作系统和服如果服务器有一个IP地址,这可能是一个安全的赌注,尽管有些情况下这可能包含127.0.0.1。 缺点是,没有100%可靠的方法来确定Web服务器的保证工作IP地址,而不检查发送到Web服务器的信息,以便生成您正在创建的页面,如你说完全失败了它的目的。