网站信息推送上级监管服务器实现原理

156 阅读1分钟

网站信息推送上级监管服务器实现原理

某年某月某日,一个客户要求把他的网站推送到某个监管平台,找了几个程序员,他们都不愿意做,可能是觉得太复杂,赚钱少,于是我接了这个任务。用ChatGPTI生成了以下代码。

实现原理比较简单,我相信所有程序员都能看得懂。可以在这个基础上举一反三,因为涉及到一些隐私。具体的网址我就不发出来了。 也是好久没有写博客了。之前的博客园、csdn。好像已经过时,找了好半天感觉稀土掘金还不错,于是选用了这个平台。

<?php

function md5_convert($string) {
    return md5($string);
}

function makeData() {
    $record_list = [
        [
        'status' => 0,  // 文章状态 是否为空:否 字典-有效状态。显示填0,过滤填1,删除填2,下线填3,修改填4
        'type' => 0,  // 关联类型 是否为空:否 字典-关联类型 新发布填0,评论填1, 转发填3,私信填4,用户删除填5,点赞填6
        'sitename' => base64_encode('翼通云'),  // 网站名称 是否为空:否  做Base64编码
        'domain' => base64_encode('www.ynicp.com'),  // 网站域名 是否为空:否  做Base64编码
        'board_name' => base64_encode('创业日记'),  // 频道名称 是否为空:否  做Base64编码
        'channel' => 1,  // 发表信道 是否为空:否 文章发表的信道,PC端网页浏览器填1,移动客户端填2,移动版浏览器填3,未发布填-1
        'forms' => 6,  // 文章内容类型 是否为空:否 文字填1,纯图片填2,纯视频填3,纯音频填5,文字+图片填6,文字+视频填7,文字+音频填8,其他填9
        'original' => 0,  // 是否原发 是否为空:否 是否原创。原创填1, 非原创填0
        'from' => base64_encode('本站'),  // 来源 是否为空:否 做Base64编码
        'publishtime' => date("Y-m-d H:i:s"),  // 文章发表时间 是否为空:否 文章在网站上发表时间,即显示在页面上的时间。yyyy-MM-dd HH:mm:ss格式
        'originurl' => base64_encode('https://www.ynicp.com/1.html'),  // 文章链接 是否为空:否 文章发布的URL  做Base64编码
        'title' => base64_encode('文章标题'),  // 文章标题 是否为空:否 做Base64编码
        'abstract' => base64_encode('摘要'),  // 文章摘要 是否为空:否 做Base64编码
        'text' => base64_encode('正文'),  // 文章内容 是否为空:否 做Base64编码
        'authorid' => base64_encode('888'),  // 作者账号ID 是否为空:否 如果该文章的作者在企业中注册了作者账号,填写其账号ID  做Base64编码
        'authorname' => base64_encode('张三'),  // 作者名 是否为空:否 做Base64编码
        'accounturl' => null,  // 作者主页 是否为空:否 做Base64编码
        'iconurl' => null,  // 头像logo原始地址 是否为空:否 url地址 做Base64编码
        'sendip' => '127.0.0.1',  // 发文IP 是否为空:否
        'sendadress' => '127.0.0.1',  // 发文ip所在地址 是否为空:否
        'photourls' => null,  // 图片URL 是否为空:否 文章中的图片URL或ID,可为多个。可通过此字段获取图片 每个元素做base64编码
        'videourls' => null,  // 视频URL 是否为空:否 文章中的视频URL或ID,可为多个。可通过此字段获取视频 每个元素做base64编码
        'attachmenturls' => null,  // 附件链接 是否为空:否 文章中的附件URL或ID,可为多个。可通过此字段获取文件 每个元素做base64编码
        'audiourls' => null,  // 音频URL 是否为空:否 文章中的音频URL或ID,可为多个。可通过此字段获取音频 每个元素做base64编码
        ]
    ];
    $send_data = [
        "msg_version" => 1.0,
        "total_pushed_num" => 1,
        "msg_type" => "website.base",//网站基础数据 website.base   网站交互统计数据website.baseia   网站评论数据website.comment
        "key" => "key是一串字符",//这个Key
        "record_list" => $record_list,
        "version"=> "P1.0.0",
        "md5" => md5_convert(json_encode($record_list))
    ];
    return $send_data;
}

function sendMsg($json_data) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "这里输入接收网址");//接收服务器地址
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($json_data));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    //下面这两句很重要
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // 忽略SSL证书验证
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 忽略SSL证书验证
   

    //echo json_encode(makeData($json_data)); 

    $response = curl_exec($ch);
    
    // 处理服务器响应
    if ($response === false) {
        // 请求失败的处理逻辑
        $error = curl_error($ch); // 获取详细的错误信息
        echo "cURL Error: " . $error;
    } else {
        // 请求成功的处理逻辑
        
        echo $response;
    }
    $status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    echo $status_code;//返回200就表示成功
}
//echo json_encode(makeData()) . "\n";
sendMsg(makeData());
?>




`