首页 > 编程语言 >PHP使用HTTP隧道代码示例模板

PHP使用HTTP隧道代码示例模板

时间:2023-06-12 15:04:35浏览次数:53  
标签:ch HTTP setopt 示例 ip curl PHP CURLOPT

以下是使用PHP实现HTTP隧道的代码示例模板:


```php

<?php


// 目标网站的URL

$targetUrl = 'Example Domain';


// 获取客户端请求的HTTP方法和请求头

$method = $_SERVER['REQUEST_METHOD'];

$headers = getallheaders();


// 创建与目标网站的连接

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $targetUrl);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_HEADER, true);

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);


// 如果是POST请求,则将请求体也发送到目标网站

if ($method === 'POST') {

$postData = file_get_contents('php://input');

curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);

}


// 执行HTTP请求并获取响应

$response = curl_exec($ch);


// 将响应头和响应体分离

$headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE);

$responseHeaders = substr($response, 0, $headerSize);

$responseBody = substr($response, $headerSize);


// 将响应头发送给客户端

foreach (explode("\r\n", $responseHeaders) as $header) {

header($header);

}


// 将响应体发送给客户端

echo $responseBody;


// 关闭与目标网站的连接

curl_close($ch);

```


这段代码会将客户端的HTTP请求转发到目标网站,并将目标网站的HTTP响应返回给客户端。注意,这段代码并没有对请求进行任何安全性检查,因此需要在实际使用时进行适当的安全性控制。

// 要访问的目标页面
    $targetUrl = "http://ip.hahado.cn/ip";
    //$targetUrl = "http://ip.hahado.cn/switch-ip";
    //$targetUrl = "http://ip.hahado.cn/current-ip";
    // 代理服务器
    define("PROXY_SERVER", "ip.hahado.cn:39010");
    // 隧道身份信息
    define("PROXY_USER", "username");
    define("PROXY_PASS", "password");
    $proxyAuth = base64_encode(PROXY_USER . ":" . PROXY_PASS);
    $headers = implode("\r\n", [
        "Proxy-Authorization: Basic {$proxyAuth}",
        "Proxy-Switch-Ip: yes",
    ]);
    $options = [
        "http" => [
            "proxy"  => $proxyServer,
            "header" => $headers,
            "method" => "GET",
        ],
    ];
    $context = stream_context_create($options);
    $result = file_get_contents($url, false, $context);
    var_dump($result);

标签:ch,HTTP,setopt,示例,ip,curl,PHP,CURLOPT
From: https://blog.51cto.com/u_15822686/6462677

相关文章

  • PHP json_decode 关键词不被解析的处理方法
    如果JSON数据中包含了PHP的关键字,如true、false或者null,则json_decode()函数将无法成功解析该数据。因此可以使用单独判断的方式$v=$v===true?'true':$v;$v=$v===false?'false':$v;$v=$v===null?'null':$v;sha256demo<......
  • 13、镜像仓库Habor的安装、高可用、https加密
    Docker之分布式仓库Harbor安装Harbor下载地址:https://github.com/vmware/harbor/releases安装要求:4CPUMEM:8GBDISK:160GB环境准备:四台主机两台主机harbor服务器,地址10.0.0.101|102两台主机harbor客户端上传和下载镜像一键安装docker、docker-compose、harbor脚本#!/bi......
  • php文件上传之白名单00截断实验
    %00截断介绍:0x00,%00,/00在url中%00表示ascll码中的0,而ascii中0作为特殊字符保留,表示字符串结束,所以当url中出现%00时就会认为读取已结束。但是所谓的if拦截仍会读取后面的后缀达到绕过白名单的效果。当前版本环境:PHP版本低于5.4.24,或者PHP版本在5.5.8到5.6.0之间,且GPC......
  • HTTP代理出现错误代码204是什么意思
    当咱们使用HTTP代理时,经常会出现错误码。其中最常见的是204错误码。那么,什么是204错误码?它表示什么意思呢?首先,204是HTTP协议定义的一种响应状态码。HTTP是一种在网络上传输超文本数据的协议,当我们使用HTTP代理访问网站时,会通过HTTP协议进行通信。204状态码表示服务器已......
  • delphi通过TNetHttpClient监测小红书笔记有无新增评论
    一、实现原理及步骤 每隔一定时间间隔(比如2分钟),抓取特定笔记ID的全部评论,统计出评论数量及子评论数量,与前一次抓取的数量比较,如数量增加,说明有新增评论。然后通过排序评论,找出最新添加的评论。二、技术要点1、评论接口https://edith.xiaohongshu.com/api/sns/web/v2/comment......
  • 网站http免费升级到https(阿里云)
    1、购买阿里云免费的ssl证书通过下面链接购买免费的ssl证书:https://common-buy.aliyun.com/?spm=a2c4g.11186623.2.6.767e1a63RfnkBE&commodityCode=cas#/buy显示这个界面不能购买点那个蓝色字体购买免费的【证书资源包】2、申请证书前往阿里云ssl证书控制台----SSL证书----免费证......
  • phptrace 是一个用于跟踪 PHP 应用程序性能的工具,可以帮助开发者快速发现性能瓶颈和调
    phptrace是一个用于跟踪PHP应用程序性能的工具,可以帮助开发者快速发现性能瓶颈和调试PHP应用程序。以下是一个使用phptrace的简单案例:1.安装phptrace可以通过以下命令安装phptrace:sudoapt-getinstallphp7.0-devgitclonehttps://github.com/Qihoo360/phptrace.......
  • [GPT] php 报错 Unsupported operand types
     Unsupportedoperandtypes这个错误通常发生在使用了不支持的操作数类型时。例如,当您尝试对两个不同类型的值执行算术运算时,就会出现这个错误。例如,如果您尝试将字符串与数字相加,则会出现此错误: $number=10;$string="20";$result=$number+$string;//Unsuppo......
  • web服务器一键安装脚本 EZHTTP
    EZHTTP是集成了nginx apache php mysql memcached等web服务器软件的一键安装脚本,它能自由选择安装任意的软件,自动选最优线路下载,定制容易。如何安装因为安装时间会比较久,建议安装前使用screen,screen使用方法如下:1、首先得安装screen,ubuntu使用apt-getinstallscreen,centos或r......
  • 非常简单的Python HTTP服务
       如果你急需一个简单的WebServer,但你又不想去下载并安装那些复杂的HTTP服务程序,比如:Apache,ISS等。那么,Python可能帮助你。使用Python可以完成一个简单的内建HTTP服务器。于是,你可以把你的目录和文件都以HTTP的方式展示出来。佻只需要干一件事情,那就是安装一个Python。......