From 4738d0ba3e75142e69b4ef08f89094e9ef3b7c5c Mon Sep 17 00:00:00 2001 From: xiaoz Date: Mon, 14 Mar 2022 10:42:38 +0800 Subject: [PATCH] add --- README.md | 55 ++++++++++- api.php | 74 ++++++++++++++ ext.php | 51 ++++++++++ index.html | 277 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 455 insertions(+), 2 deletions(-) create mode 100644 api.php create mode 100644 ext.php create mode 100644 index.html diff --git a/README.md b/README.md index 0fda53d..a46cf32 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,54 @@ -# xw.al +用于生成短链接。 -xw.al前端 \ No newline at end of file +## 使用说明 + +- 请求方法:POST +- 请求地址:`https://xw.al/api.php` + +## 请求参数 + +| **参数名称** | **类型** | **是否必须** | **示例值** | +| -------- | ------ | -------- | -------------------- | +| url | string | 是 | https://www.xiaoz.me | + +**请求成功:** + +```json +{ + "url": { + "keyword": "1aj1z", + "url": "https://www.xiaoz.me", + "title": "小z博客 - 生命不息,吾将折腾不止。", + "date": "2021-01-01 05:29:35", + "ip": "118.112.xxx.xxx" + }, + "status": "success", + "message": "https://www.xiaoz.me 已保存为", + "title": "小z博客 - 生命不息,吾将折腾不止。", + "shorturl": "https://xw.al/1aj1z", + "statusCode": 200 +} +``` + + + +- statusCode:状态码,请求成功为200 +- shorturl:返回的短网址 + +**请求失败:** + +```json +{ + "code": 403, + "err_msg": "Blacklisted domain." +} +``` + + + +- code:请求失败的状态码 +- err_msg:错误原因 + +## 限制 + +- 单IP每日限制50次请求 diff --git a/api.php b/api.php new file mode 100644 index 0000000..1788144 --- /dev/null +++ b/api.php @@ -0,0 +1,74 @@ + + * update:2022/03 + * + */ +header('Content-Type:application/json; charset=utf-8'); +//载入扩展配置文件 +require('ext.php'); + +//默认域名,请改成你自己的域名,末尾不要带有/ +define("DOMAIN","https://xw.al"); +//每日单IP限制,就是每个IP每天可以生成多少个短链接,默认50个 +define("LIMIT",50); +//过期时间设置 +$today = strtotime(date("Y-m-d 23:59:59"),time()); +$exp_time = $today - time(); +//改成你自己的secret signature token,登录YOURLS后台 - 工具 - 安全的API调用 - 获取secret signature token +define("TOKEN",''); + +//获取url +$url = @$_POST['url']; +//echo $url; +//exit; +//try{ +// $url = urldecode($url); +//} +//catch(Exception $e){ +// err_msg($e->getMessage()); +//} +//如果URL不合法,直接停止 +if( ! filter_var($url, FILTER_VALIDATE_URL) ) { + err_msg('URL不合法!'); +} + + +//获取用户IP +$ip = getIP(); +//设置key +$key = 'ip_'.str_replace('.','_',$ip); + +//连接本地的 Redis 服务 +$redis = new Redis(); +$redis->connect('127.0.0.1', 6379); + +//判断key是否存在 +if( ! $redis->get($key) ) { + $redis->set($key, '0'); + $redis->EXPIRE($key, $exp_time); +} +//如果key存在 +if ( ($redis->get($key)) || ( $redis->get($key) === '0' ) ) { + //获取value + $value = intval($redis->get($key)); + //如果value小于limit,则调用API + if( $value < LIMIT ) { + $api_url = DOMAIN.'/yourls-api.php?signature='.TOKEN.'&action=shorturl&format=json&url='.$url; + $re = curl($api_url); + $value = (string)($value + 1); + + $redis->set($key, $value); + $redis->EXPIRE($key, $exp_time); + // + exit($re); + } + else{ + err_msg('今日请求上限!'); + } +} +//var_dump($redis->get($key)); +//echo $key; +//echo $redis->get($key); diff --git a/ext.php b/ext.php new file mode 100644 index 0000000..78738dc --- /dev/null +++ b/ext.php @@ -0,0 +1,51 @@ + 403, + 'err_msg' => $msg + ]; + exit(json_encode($data)); +} \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..06de7a2 --- /dev/null +++ b/index.html @@ -0,0 +1,277 @@ + + + + + xw.al 小五爱链短网址 + + + + + + + + + + + +
+ +
+ + +
+ +
+ + +
+ +
+ + + +
+ +
+
+
+
+ +
+
+

xw.al我为他取了个很骚气的中文名叫:小五爱链,主要提供短链接转换服务,简称小五,使用中请务必遵守以下协议。

+
    +
  • 不得转换博彩、赌博、色情、政治、暴力、血腥、成人用品等网站。
  • +
  • 违法上一条协议,对短链做删除处理,不做任何通知。
  • +
  • 单IP每日限制50次转换。
  • +
  • 转换后的链接长期有效,直到项目无法维持。
  • +
  • 为保持良性发展,您可以进行捐赠:捐赠地址
  • +
+

如有疑问,您可通过以下方式联系我。

+
    +
  • QQ:337003006
  • +
  • QQ群1:147687134
  • +
  • QQ群2:932795364
  • +
+
+
+
+
+ +
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+ +
+
+
+
+ +
+ +
+
+
+
+ + +
+
扫码访问:
+
+
+ +
+
+ + +
+
+
+
+
+ +
+ + + + + + + + +