【问题标题】:Connect to local IP from outside via php通过php从外部连接到本地IP
【发布时间】:2016-05-02 16:06:22
【问题描述】:

我有:

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

任务:向本地 IP 发送 SOAP 请求并获取 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);

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

【问题讨论】:

  • "我知道如何实现 SOAP-request,但我不明白如何使用 PHP 跨 VPN 连接到本地 IP。" — 与任何其他 IP 地址相同。 VPN 在网络级别处理。你的代码不需要关心它。

标签: php xml soap request vpn


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-19
    • 1970-01-01
    • 2017-02-21
    • 2017-10-04
    • 2014-07-31
    • 2015-08-14
    • 2012-02-23
    • 1970-01-01
    相关资源
    最近更新 更多