【问题标题】:cURL works locally; Connection refused on servercURL 在本地工作;服务器上的连接被拒绝
【发布时间】:2019-06-18 17:32:56
【问题描述】:

我正在尝试使用 PHP 的 cUrlfile_get_content() 从以下 URL 获取响应-

https://www.bkashcluster.com:9081/dreamwave/merchant/trxcheck/sendmsg?user=<USERNAME>&pass=<PASSWORD>&msisdn=<MSISDN>&trxid=<TRANSACTION_ID>

为简单起见-

https://www.bkashcluster.com:9081/dreamwave/merchant/trxcheck/sendmsg

对于有效请求,它会以交易的详细信息响应 XML,但对于第二个 url 或任何参数不正确的请求,它会从浏览器或邮递员响应如下内容-

<transactions>
    <transaction>
        <trxStatus>1002</trxStatus>
        <trxId>6E72D8VS02</trxId>
        <reference/>
    </transaction>
</transactions>

我已经编写了一个 php 代码来获得这样的响应-

$endPoint = "https://www.bkashcluster.com:9081/dreamwave/merchant/trxcheck/sendmsg?user=xxxx&pass=xxxx&msisdn=xxxx&trxid=xxxx";
$xmlString = file_get_contents($endPoint, FILE_TEXT);

也尝试使用 cURL as-

$curl = curl_init($endPoint);
curl_setopt($curl, CURLOPT_PORT, 9081); // Tried with or without
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$xml_string = curl_exec($curl);

问题:在这两种情况下,我都能从 localhost 得到完美的响应,但是当我从 Web 服务器执行它时,连接被拒绝。

错误显示类似这样的内容-

file_get_contents()

无法打开流:连接被拒绝

curl_error()

无法连接到主机

值得一提的是,这两个函数都可以在服务器中用于任何其他 URL,例如 https://google.com

我找到了this almost similar question in stackoverflow,但不幸的是它没有任何答案。

主机站点有任何限制吗?或者我错过了什么或需要做任何额外的事情?或者它不适用于不同的端口而不是 80?

【问题讨论】:

标签: php curl


【解决方案1】:

它几乎肯定是一个 IP 块(或范围块或区域块?),您可以尝试对其进行跟踪,它可能会显示您被阻止的位置,但是您是否尝试过从另一个 IP 获得?作为记录,我尝试过从挪威、法国、加拿大和荷兰连接,我可以从所有这些位置连接,所以……很可能是一个 ip/range 块。

【讨论】:

  • 我从几个不同 IP 范围的托管服务器上进行了测试。我观察到,它不能在任何共享主机服务器上工作,而是在 3 VPS 上工作,虽然我不知道实际原因。
  • @PartharajDeb 让我猜猜,您测试的所有Shared Hosting servers 都是母公司为Endurance International Group 的公司? (他们拥有大量托管服务,HostGator、BlueHost、domain.com 等等)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-23
  • 2021-11-04
  • 2015-07-19
  • 2022-11-09
  • 1970-01-01
  • 1970-01-01
  • 2020-12-10
相关资源
最近更新 更多