重拾古老的开发工具

这几天除了去练车,就没啥事了。于是寻思着给自己SS站点做一个客户端。
你懂的,客户端程序我只会VB,嗯,没错,一个诞生了很久却很好用的东西。
因为Shira No.1和我说千万别在客户端直接写SQL语句,所以我还需要写API来调用SS的数据库。
大致的开发步骤是这样的,在一个网站环境下,搭建api.php,用于处理数据库,然后返回调用信息。
因为我不是很熟悉VB上的POST的写法,于是就全用的GET。
可能api.php距离SS数据库服务器比较远,所以就利用了下Redis,在用户登录的时候,把所有数据都存进去,以后用的之后直接拿,无需访问远程数据库。

23333.png

23332.png

23331.png

界面很丑,我也知道但是我实在写不出更好看的界面了 23333333
下面贴上PHP的一段代码,可能是我第一次写PHP,所以比较垃圾,看看就好了。

<?php
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

if($_GET['action']=='login')
{
    $con=mysqli_connect("127.0.0.1","root","233333","ss"); 
    if (mysqli_connect_errno($con)) 
        { 
            echo "连接 MySQL 失败: " . mysqli_connect_error(); 
        } 
    $md5pass=md5($_GET['inputpass']);
    $sql="select * from user where `email` = '".$_GET['inputemail']."' and `pass` = '".$md5pass."'";
    $result=mysqli_query($con,$sql);
    $row=mysqli_fetch_assoc($result);

    if($row["email"]!="" && $row["pass"]!="")
        {
            echo "1";
            $redis->set($row["email"]."username", $row["user_name"]);
            $redis->set($row["email"]."email", $row["email"]);
            $redis->set($row["email"]."pass", $row["pass"]);
            $redis->set($row["email"]."passwd", $row["passwd"]);
            $redis->set($row["email"]."t", $row["t"]);
            $redis->set($row["email"]."u", $row["u"]);
            $redis->set($row["email"]."d", $row["d"]);
            $redis->set($row["email"]."protocol", $row["protocol"]);
            $redis->set($row["email"]."obfs", $row["obfs"]);
            $redis->set($row["email"]."method", $row["method"]);
            $redis->set($row["email"]."port", $row["port"]);
            $redis->set($row["email"]."transfer_enable", $row["transfer_enable"]);
        }
    else
        {
            echo "0";
        }
    mysqli_free_result($result);
    mysqli_close($con);
}

if($_GET['action']=='getusername')
{
    $inputemail=$_GET['inputemail'];
    $inputpass=md5($_GET['inputpass']);
    if($redis->get($inputemail."pass") == $inputpass)
    {
        echo  $redis->get($inputemail."username");
    }
    else
    {
        echo "Permission Deniend";
    }
}

if($_GET['action']=='getpasswd')
{
    $inputemail=$_GET['inputemail'];
    $inputpass=md5($_GET['inputpass']);
    if($redis->get($inputemail."pass") == $inputpass)
    {
        echo  $redis->get($inputemail."passwd");
    }
    else
    {
        echo "Permission Deniend";
    }
}

if($_GET['action']=='getmethod')
{
    $inputemail=$_GET['inputemail'];
    $inputpass=md5($_GET['inputpass']);
    if($redis->get($inputemail."pass") == $inputpass)
    {
        echo  $redis->get($inputemail."method");
    }
    else
    {
        echo "Permission Deniend";
    }
}

if($_GET['action']=='getport')
{
    $inputemail=$_GET['inputemail'];
    $inputpass=md5($_GET['inputpass']);
    if($redis->get($inputemail."pass") == $inputpass)
    {
        echo  $redis->get($inputemail."port");
    }
    else
    {
        echo "Permission Deniend";
    }
}

if($_GET['action']=='getobfs')
{
    $inputemail=$_GET['inputemail'];
    $inputpass=md5($_GET['inputpass']);
    if($redis->get($inputemail."pass") == $inputpass)
    {
        echo  $redis->get($inputemail."obfs");
    }
    else
    {
        echo "Permission Deniend";
    }
}

if($_GET['action']=='getprotocol')
{
    $inputemail=$_GET['inputemail'];
    $inputpass=md5($_GET['inputpass']);
    if($redis->get($inputemail."pass") == $inputpass)
    {
        echo  $redis->get($inputemail."protocol");
    }
    else
    {
        echo "Permission Deniend";
    }
}

if($_GET['action']=='getd')
{
    $inputemail=$_GET['inputemail'];
    $inputpass=md5($_GET['inputpass']);
    if($redis->get($inputemail."pass") == $inputpass)
    {
        echo  (intval)($redis->get($inputemail."d")/1024/1024);
    }
    else
    {
        echo "Permission Deniend";
    }
}

if($_GET['action']=='gett')
{
    $inputemail=$_GET['inputemail'];
    $inputpass=md5($_GET['inputpass']);
    if($redis->get($inputemail."pass") == $inputpass)
    {
        echo  $redis->get($inputemail."t");
    }
    else
    {
        echo "Permission Deniend";
    }
}

if($_GET['action']=='getu')
{
    $inputemail=$_GET['inputemail'];
    $inputpass=md5($_GET['inputpass']);
    if($redis->get($inputemail."pass") == $inputpass)
    {
        echo  (intval)($redis->get($inputemail."u")/1024/1024);
    }
    else
    {
        echo "Permission Deniend";
    }
}

if($_GET['action']=='gette')
{
    $inputemail=$_GET['inputemail'];
    $inputpass=md5($_GET['inputpass']);
    if($redis->get($inputemail."pass") == $inputpass)
    {
        $MB = (intval)($redis->get($inputemail."transfer_enable") / 1024/1024);
        echo  $MB;
    }
    else
    {
        echo "Permission Deniend";
    }
}

SSHOP项目筹备中

前言

因为我一个人写了很长时间的项目,服务器开支还是比较大的,所以总是思考着能赚到点钱,弥补服务器的开支。
我就在后来的程序中,加入了支持,打赏页面,可是到现在为止,还是没有一分钱的打赏。
我对打赏这种方式失去了信心,准备琢磨着新的出路。

新的出路

因为我技术不一定硬,如果直接上去卖VPS之类的,估计会被LOC打死
决定从卖一点SS开始吧。这东西用的挺多,周围的同学也都有这个需求。
接下来就到了一个很难的问题了:用那种程序卖SS好?
我总结了下目前的主流销售面板

  • sspanel:没有支付模块,懒得改。

  • sspanel v3魔改版:功能太多太复杂,用户懒得研究。

  • WHMCS + SS模块:模块和WHMCS主程序都太贵,不适合刚刚入门的。

  • 其他面板 :各种功能缺陷和界面自适应。

所以最后的结论是:还不如自己写一个把。

项目说明

新的这个项目我也很随意的起了个名字,叫SSHOP,准备用PHP重头开始写,基础界面就用 BootStrap来写好了,反正我也只会用这个,丑就丑点吧。哈哈哈

开源说明

因为这是我自己练手写的PHP项目,不准备开放源码,我只会在我的站点上使用这个程序。
就是这样,这个坑已经挖好了,准备好好填坑。。

一个SSR个人WEB面板 - SWEB

SWEB

个人使用的ShadowsocksR的WEB面板。集成修改配置,开启,关闭为一体的管理功能的网页面板。设计初衷是为了让所有的扶墙专用VPS能有一个简单的控制面板。类似于搬瓦工那种的。

阅读全文»