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


Connect to local IP from outside via php

我有:

  1. 要连接到外部服务器的数据(IP、登录名、密码)。
  2. 准备好从外部服务器到其他机器的VPN隧道。
  3. 本地 IP (192.168.....?wsdl)的这台机器与要询问的服务包(SOAP-query)。

任务:将 SOAP 请求发送到本地 IP 并获取 XML 应答。

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

例如,这里我将XMLHttpRequest()发送到"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);

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

如果您的服务器具有简单的单个 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 服务器的信息以生成您正在创建的页面,正如您所说,这完全违背了它的目的。