首页
时间轴
统计
壁纸
留言
友邻
关于
推荐
每日新闻
网易云音乐
抖音无水印
小米步数
Excel比对
网站seo优化
网站监测器
文章伪原创
前端配色表
多编码转换
JSON解析
IP属地查询
IP端口扫描
在线测速网
在线集五福
精美壁纸
采集图片
蜜语星球
CF图标点亮
查QQ群数量
QQ邮箱
取QQSkey
取百度key
取微博key
Search
1
教你如何把Waves效果器完整的卸载干净
2,465 阅读
2
123云盘直链带密码解析源码
1,044 阅读
3
2023新版QQ工具箱全开源
793 阅读
4
2023新版API接口管理系统v1.3全开源
760 阅读
5
个人新拟态主页UI5.0全开源
577 阅读
技术文章
程序代码
实用软件
声卡效果
登录
/
注册
Search
标签搜索
咔咔云
PHP
技术文章
PHP代码
API
QQ技术
网站程序
绿色软件
易语言源码
网络攻防
图床源码
授权程序
网站优化
声卡效果
SEO优化
计算机常识
Windows
GitHub
typecho
网站美化
咔咔云
技术交流群
累计撰写
53
篇文章
累计收到
1
条评论
首页
栏目
技术文章
程序代码
实用软件
声卡效果
页面
时间轴
统计
壁纸
留言
友邻
关于
推荐
每日新闻
网易云音乐
抖音无水印
小米步数
Excel比对
网站seo优化
网站监测器
文章伪原创
前端配色表
多编码转换
JSON解析
IP属地查询
IP端口扫描
在线测速网
在线集五福
精美壁纸
采集图片
蜜语星球
CF图标点亮
查QQ群数量
QQ邮箱
取QQSkey
取百度key
取微博key
用户登录
登录
注册
搜索到
17
篇与
的结果
2023-02-12
PHP简单防CC攻击方法
开发原因由于咔咔云Api站点经常被频繁恶意请求,且偶尔还会被CC攻击的问题,所以咔咔云站长开发了一套防止非正常高频率请求和防止一般CC攻击的PHP版本代码。优势:{card-describe title="主要功能"}PHP访问频率限制,防CC攻击,支持上万并发。简单易用,无论你懂不懂PHP开发,只要会复制粘贴就行。Memcached内存缓存技术,高性能,高并发。精准无误,0误封。能防护QPS10000以内的CC攻击,看机器配置,有可能更高。支持范围较广,直接你网站支持PHP就行。源码简单,可自行修改,可以套自己喜欢的前端模板主题。{/card-describe}环境要求:PHP版本 ≥ 7.2PHP需安装Memcached扩展Memcached ≥1.6使用方法将以下开源代码添加到你网站核心文件中,相当于你网站任何页面都会引用的一个文件。如:config.php,common.php,Ajax.php等。开发源码ini_set("display_errors", "Off"); error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING); extension_loaded('memcached') or die('memcached扩展未安装!'); $logPath = $_SERVER['DOCUMENT_ROOT'] . '/waf/waf.log'; //日志记录文件保存路径,$_SERVER['DOCUMENT_ROOT']是网站根目录 $fileht = $_SERVER['DOCUMENT_ROOT'] . '/waf/ban.log'; //被拉黑IP记录文件保存路径 if (!file_exists($logPath)) { @mkdir($_SERVER['DOCUMENT_ROOT'] . '/waf/', 0777, true); @file_put_contents($logPath, ''); @file_put_contents($fileht, ''); } $allowtime = 2; //防刷新时间(秒) $allownum = 5; //防刷新次数(比如2秒5次,超过就警告) $allowRefresh = 10; //在此警告次数之后拉黑IP $bantime = 600; //封禁时间,超时自动解封(秒) $ip = $_SERVER['HTTP_X_FORWARDED_FOR'] ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR']; $uri = $_SERVER['PHP_SELF']; $cache = new Memcached(); $cache->addServer('127.0.0.1', '11211') or die('memcached连接失败!'); $inban = $cache->get('waf-ban-' . $ip); if ($inban) { header("HTTP/1.1 403 Forbidden"); exit('<h1>403 Forbidden 非法访问</h1> <p>你的请求似乎不符合常理,已被服务器防火墙拦截,如有疑问请联系管理员QQ79087446/br>如果你在开发测试过程中超频被封IP,请等待' . ($bantime / 60) . '分钟后自动解封</br>你的IP:' . $ip . '</p>'); } $wafarr = $cache->get('waf-' . $ip); if (!$wafarr) { $wafarr = [ 'path' => $uri, 'time' => time() + $allowtime, 'sum' => 1, ]; $cache->set('waf-' . $ip, $wafarr, time() + $allowtime); } else { if ($wafarr['sum'] > $allownum) { $wafsum_arr = $cache->get('waf-sum-' . $ip); if (!$wafsum_arr) { $wafsum_arr = [ 'sum' => 1, ]; $cache->set('waf-sum-' . $ip, $wafsum_arr, time() + $bantime); } else { if ($wafsum_arr['sum'] > $allowRefresh) { $cache->set('waf-ban-' . $ip, 1, time() + $bantime); file_put_contents($fileht, $ip . "\n", FILE_APPEND); } else { $wafsum_arr['sum']++; $cache->set('waf-sum-' . $ip, $wafsum_arr, time() + $bantime); } } file_put_contents($logPath, $ip . '--' . date('Y-m-d H:i:s', time()) . '--' . $uri . "\n", FILE_APPEND); header("HTTP/1.1 403 Forbidden"); exit("请求频率QPS超过限制,请酌情访问,多次提醒后会封禁IP!"); } else { $wafarr['sum']++; $cache->set('waf-' . $ip, $wafarr, $wafarr['time']); } }
2023年02月12日
288 阅读
0 评论
0 点赞
2023-01-29
API、SDK的区别
一、API的概念 API的全称为Application Programming Interface,翻译过来的意思就是应用程序编程接口。实际上,API是一些预先定义的函数,目的是提供应用程序与开发人员基于某个软件或硬件,得以访问一组进程的能力。不需要直接去访问源码,或去深刻理解内部工作机制的细节。也就是平常总说的封装的函数,避免重复造轮子的意思,实际上我们可以通过一个日常生活工作中的事来更好的理解API的概念:{callout color="#f0ad4e"}在没有网络的工作或生活条件下,我们如果需要通过电脑来获取手机中存储的信息时,可以使用一条数据线来连接手机和电脑。在这个场景下,电脑和手机上承载数据线的接口就相当于我们在编程中常说的“API接口”。{/callout}二、SDK的概念SDK的全称为Software Development Kit,翻译过来的意思就是软件开发工具包。这是一个覆盖面相当广泛的名词,简单来说就是:辅助开发某一类软件的相关文档、演示举例和一些工具的集合,这些都可以称为 SDK。{callout color="#f0ad4e"}SDK被开发出来的意义是为了减少开发者的工作量。例如:某公司开发出某种软件的某一功能,将其封装成SDK(例如数据分析SDK,就是能够实现数据分析功能的SDK),出售给其他需要的公司使用。这样就可以大大减少开发应用程序的工作量。{/callout}三、SDK和API的区别从根本上来讲,这两者的没有什么值得比较的地方,本质上是具有很强关联性的两个存在。我们可以将SDK解释为封装好功能的一个软件包,而这个软件包几乎是封闭的状态,只有一个接口可以进行访问,那这个接口就是我们所了解的API。再或者咔咔云站长给大家用生活中的例子来区别下二者:{callout color="#f0ad4e"}有一杯密封饮料,它的名字叫做“SDK”,饮料上插着吸管,吸管的名字叫“API”。把你叫做“XX系统”,如果你想喝到SDK里的饮料(让系统拥有SDK中的功能),你必须通过API这根吸管来实现(通过API连接你的系统和SDK工具包),否则你就喝不到饮料。所以:SDK=放着你想要的软件功能的软件包API=SDK上唯一的接口{/callout}
2023年01月29日
260 阅读
0 评论
0 点赞
2023-01-19
一个万能的PHP_CURL函数
PHP_curl函数CURL是PHP的一个扩展,利用该扩展可以实现服务器之间的数据或文件传输,用来采集网络中的html网页文件、其他服务器提供接口数据等。使用场景{message type="success" content="网页资源——网页爬虫webservice——动态获取数据FTP——下载里面的文件其他资源——都可以用curl获取到"/}使用准备{message type="success" content="1.在php.ini里面开启curl这个扩展2.将PHP的安装路径保存到环境变量的系统变量中(环境变量之间的分隔符是英文的分号)3.重启WEB服务4.php -i | grep curl如果出现版本号就是支持的"/}万能curl函数PHP_curl函数网上有很多 ,但大多是需要自行匹配的,所以咔咔云站长今天给大家分享一个万能curl函数,同时也会给大家分享下咔咔云自用的curl函数。<?php /** * @author 咔咔云 * @link https://www.kkjsz.cn * @date 2022年6月14日10:16:06 * @msg PHPCurl封装的方法 */ function teacher_curl($url, $paras = []) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); if (isset($paras['Header'])) { $Header = $paras['Header']; } else { $Header[] = "Accept:*/*"; $Header[] = "Accept-Encoding:gzip,deflate,sdch"; $Header[] = "Accept-Language:zh-CN,zh;q=0.8"; $Header[] = "Connection:close"; } curl_setopt($ch, CURLOPT_HTTPHEADER, $Header); if (isset($paras['ctime'])) { // 连接超时 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $paras['ctime']); } else { curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); } if (isset($paras['rtime'])) { // 读取超时 curl_setopt($ch, CURLOPT_TIMEOUT, $paras['rtime']); } if (isset($paras['post'])) { curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $paras['post']); } if (isset($paras['header'])) { curl_setopt($ch, CURLOPT_HEADER, true); } if (isset($paras['cookie'])) { curl_setopt($ch, CURLOPT_COOKIE, $paras['cookie']); } if (isset($paras['refer'])) { if ($paras['refer'] == 1) { curl_setopt($ch, CURLOPT_REFERER, 'http://m.qzone.com/infocenter?g_f='); } else { curl_setopt($ch, CURLOPT_REFERER, $paras['refer']); } } if (isset($paras['ua'])) { curl_setopt($ch, CURLOPT_USERAGENT, $paras['ua']); } else { curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"); } if (isset($paras['nobody'])) { curl_setopt($ch, CURLOPT_NOBODY, 1); } curl_setopt($ch, CURLOPT_ENCODING, "gzip"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); if (isset($paras['GetCookie'])) { curl_setopt($ch, CURLOPT_HEADER, 1); $result = curl_exec($ch); preg_match_all("/Set-Cookie: (.*?);/m", $result, $matches); $headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE); $header = substr($result, 0, $headerSize); //状态码 $body = substr($result, $headerSize); $ret = [ "Cookie" => $matches, "body" => $body, "header" => $header, 'code' => curl_getinfo($ch, CURLINFO_HTTP_CODE), ]; curl_close($ch); return $ret; } $ret = curl_exec($ch); if (isset($paras['loadurl'])) { $Headers = curl_getinfo($ch); if (isset($Headers['redirect_url'])) { $ret = $Headers['redirect_url']; } else { $ret = false; } } curl_close($ch); return $ret; }使用方法1.get访问echo teacher_curl("https://api.kkjsz.cn/api/beian.php?url=qq.com");2.post访问echo teacher_curl("https://api.kkjsz.cn/api/beian.php",[ 'post'=>[ 'url'=>'qq.com' ] ]);或者是echo teacher_curl("https://api.kkjsz.cn/api/beian.php",[ 'post'=>'url=qq.com' ]);3.携带Cookie访问echo teacher_curl("https://api.kkjsz.cn/api/beian.php?url=qq.com",[ 'cookie'=>'cookie内容' ]);4.模拟访问来源Referecho teacher_curl("https://api.kkjsz.cn/api/beian.php?url=qq.com",[ 'refer'=>'https://api.kkjsz.cn' ]);5.模拟UseaAgentecho teacher_curl("https://api.kkjsz.cn/api/beian.php?url=qq.com",[ 'ua'=>'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36' ]);6.文件上传echo teacher_curl("https://api.kkjsz.cn/api/beian.php?url=qq.com",[ 'post'=>[ 'file'=>new CURLFile(realpath("Curl.jpg")) ] ]);或者是echo teacher_curl("https://api.kkjsz.cn/api/beian.php?url=qq.com",[ 'post'=>new CURLFile(realpath("Curl.jpg")) ]);7.获取301跳转地址echo teacher_curl("https://t.cn/A6XQ4phv",[ 'loadurl'=>1 ]);8.查看返回Header信息echo teacher_curl("https://api.kkjsz.cn/api/beian.php?url=qq.com",[ 'header'=>1 ]);9.设置请求头信息echo teacher_curl("https://api.kkjsz.cn/api/beian.php?url=qq.com",[ 'Header'=>[ 'accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3 accept-encoding: gzip, deflate, br accept-language: zh-CN,zh;q=0.9 cache-control: max-age=0' ] ]);10.获取请求的全部信息echo teacher_curl("https://api.kkjsz.cn/api/beian.php?url=qq.com",[ 'post'=>[ 'user'=>123456, 'pwd'=>123 ], 'GetCookie'=>1 ]);咔咔云站长自用PHP_curl函数function curl($url){ //Curl GET $ch = curl_init(); // Curl 初始化 $timeout = 30; // 超时时间:30s $ua='Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36';// 伪造抓取 UA $ip = mt_rand(11, 191) . "." . mt_rand(0, 240) . "." . mt_rand(1, 240) . "." . mt_rand(1, 240); curl_setopt($ch, CURLOPT_URL, $url);// 设置 Curl 目标 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);// Curl 请求有返回的值 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);// 设置抓取超时时间 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);// 跟踪重定向 curl_setopt($ch, CURLOPT_REFERER, 'https://www.baidu.com/');//模拟来路 curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:'.$ip, 'CLIENT-IP:'.$ip)); //伪造IP curl_setopt($ch, CURLOPT_USERAGENT, $ua);// 伪造ua curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);// https请求 不验证证书和hosts curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);//强制协议为1.0 curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );//强制使用IPV4协议解析域名 $content = curl_exec($ch); curl_close($ch);// 结束 Curl return $content;// 函数返回内容 }
2023年01月19日
219 阅读
0 评论
0 点赞
2023-01-19
教你如何把Waves效果器完整的卸载干净
前言如果你之前装过waves,想重新安装其他版本,需要把原来电脑上安装的WAVES删除干净, 一定要注意:统统删干净,一个不能留!包括注册表等信息,否则会出现问题。本篇文章是咔咔云站长教大家彻底的卸载掉waves效果器以及清除其残留文件的详细操作步骤,适用于所有版本!具体步骤:1.就是用缷载程序,去控制面板中,正常缷掉WAVES,可能有二三个带有“WAVES”字样的程序,全卸载。2.检查安装目录,把残留的WAVES文件夹干掉!(不同的版本,可能所在的目录不一样,以下几个目录检查一下,有的删除,没有的跳过){callout color="#f0ad4e"}C:\Program Files\WavesC:\Program Files (x86)\WavesC:\Program Files\Waves CentralC:\Program Files (x86)\Waves CentralC:\Program Data\Waves Audio 目录(其中有授权文件 Licenses){/callout}3.以防万一,尽可能的删干净,在C盘全盘搜索,全选删除。(有个别删不动的文件,跳过去就可以了) 4.清理注册表信息,注册表内的目录如下:(以下几个目录检查一下,有的删除,没有的跳过)注册表打开方法:windows+R键,打开运行——输入“regedit”确定 {callout color="#f0ad4e"}HKEY_LOCAL_MACHINE\Software\WavesHKEY_LOCAL_MACHINE\Software\Wow6432Node\WavesHKEY_LOCAL_MACHINE\SOFTWARE\Waves AudioHKEY_CURRENT_USER\Software\WavesHKEY_CURRENT_USER\Software\Wow6432Node\Waves{/callout}5.清理完成,重启电脑,就可以开始安装新的WAVES了
2023年01月19日
2,465 阅读
0 评论
1 点赞
2023-01-02
如何在网站使用CDN的情况下获取真实IP
网站使用了CDN的情况下,nginx的访问日志只会记录节点IP,无法记录用户真实访问IP。下面咔咔云站长就教大家如何记录用户真实IP。以宝塔面板为例:教程开始1、修改nginx.conf配置文件,所在路径是/www/server/nginx/conf在http{后面加入这一段:log_format realiplog '$http_x_forwarded_for - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" ';如下图所示: 2、找到已开启CDN的网站的配置文件,将最后的access_log /www/wwwlogs/域名.log;改成access_log /www/wwwlogs/域名.log realiplog;如下图所示:
2023年01月02日
148 阅读
0 评论
0 点赞
2022-11-15
咔咔云-如何对个人博客进行SEO优化
个人博客SEO推广有哪些优化技巧?今天咔咔云站长给大家简单解析下 1.坚持所谓的坚持就是坚持更新网站内容,尤其是最好每天都更新,更新的内容要结合当时热点,这样才能很好的搜索到。文章的质量不应该胡乱伪造,应该要以事实为依据,只有这样才有能力把自己的网站优化做好。在搜索引擎优化页面优化中咱们应当以文章内容页优化为主。2.添加所谓的添加,不是胡乱的去搜索他人的文章进行胡乱添加。现在许多博主为了省事都不会去添加关键词,关键词在网站搜索引擎优化中起着很大效果,在文章中的各个页面适当的添加keyword(关键词),Description(页面描述)、robots(搜索引擎抓取器)、网站怎么优化、搜索引擎优化优化技巧等标签,通过这些标签为网站的优化添加一定的好处!3.链接在文章写完后,不要以为这样就完善啦,恰当的在文章结尾链接增加相关文章,一般1-2个适宜即可,在内部的链接运用上必定要做到自然,也能够在文章中恰当增加老文章链接。对于一些自己介意的文章,以及期望更多人介意以及重要的文章,能够恰当加粗或者运用下滑线,拼音,英文进行明显的区分,在必定程度上有助于网站的seo优化。4.删除博客做的越好越会成为他人重视的焦点,所以他人的留言也会随着添加,对于他人的垃圾留言一定要删去,以防影响排名。垃圾留言指的便是他人的广告,一些违法图片黄,赌,毒这类的。一定要及时处理好。5.注明在博客的日常写作中,咱们或多或少会使用他人的文章,在此咱们一定要标明转载出自于哪里,一般都是在文章的结尾处,同样在自己的原创文章中,咱们能够标明“原创文章如需转载,请注明本网站xxx”这个在大程度上对网站搜索引擎优化优化效果很大。
2022年11月15日
284 阅读
0 评论
0 点赞
1
2
3
首页
复制
搜索
前进
后退
重载网页
SEO优化
关于站长