分类
计算机知识日志

计算机应用——使用IPBan实现入侵防护

昨天是918。

抗日英雄永垂不朽。

但是有人想要黑掉阁主的服务器。

而且似乎好像已经写入了一部分内容?但是被腾讯云监控到了。

腾讯云提醒了阁主。

阁主就把网站关了,晚上再分析研究。

晚上把日志导出来,放进PowerBI desktop里面,分析一下~

这里可以看到,有一个IP(52.151.40.180)独领风骚~

那就看它都访问了什么?

哦~请求了一堆并不存在的文件~

正常人不干这事儿。

得封掉它。

阁主懒!

咋办?

搜~

于是阁主找到了Fail2ban,wail2ban等等一系列方案。

但是阁主点进去发现,要么就是针对*nux系列的,要么就是只支持事件查看器的。

有没有支持windows操作系统上apache的?

有,IPban

阁主费了九牛二虎一起吹灰之力终于找到了IPban,下载,安装解压到相应目录,修改配置文件,启动软件,启动服务器,测试,OK,完事儿。

嗯。希望IPban正常履职,更希望被ban掉的IP越少越好~

分类
计算机知识日志

计算机应用——未经处理的异常 char

阁主在尝试抄书上的代码时,遇到一个错误,困扰了好久,现在写出来,方便有同样境遇的同志们。

阁主用的是visual studio 2017 ,书上的例子是throw一个字符串,然后catch住并回显。但是在阁主码出来实验的时候出了问题。

代码如下:

#include "pch.h"
#include <iostream>
int main()
{
	try {
		throw "这是一个异常";
	}
	catch (char *str) {
		std::cout <<str << std::endl;
	}
}//VS2017编译后运行报错:有未经处理的异常: Microsoft C++ 异常: char,位于内存位置0x0000xxxx处。

经过多次测试及搜索,终于找到问题的解决办法。可行代码如下:

#include "pch.h"
#include <iostream>
int main()
{
	try {
		throw "这是一个异常.";
	}
	catch (const char *str) {
		std::cout << str << std::endl;
	}
}

或者

#include "pch.h"
#include <iostream>
int main()
{
	try {
		char str[] = "这是一个异常.";
		throw str;
	}
	catch (char *str) {
		std::cout <<str << std::endl;
	}
}

 

分类
计算机知识日志

软件应用——设置12306付款通知

每年春运订票,都是费时费力费心的事儿。在放票的第一波能够抢到的人毕竟是少数,后面如何捡漏就成了关键。

阁主每年捡漏用的软件是木鱼的12306订票助手,有一个订票web通知的功能。可以在下订单后将自定义信息发送到指定的网址。这样,我们就不用时刻盯着屏幕了。只要在接到短信后及时付款就行了。

实现流程:

①软件生成一个post请求到制定网址,提交订单号/日期/车次/订票账户等信息。这一步,需要设置12306订票助手软件,启用订票web通知。

②建立php服务器,处理这个post请求,并调用腾讯云短信服务发送通知。

<?php
    require __DIR__ . "/vendor/autoload.php";
    use Qcloud\Sms\SmsSingleSender;
    // 短信应用SDK AppID
    $appid = 14001234567; // 1400开头
    // 短信应用SDK AppKey
    $appkey = "7654321012345677892342138";
    // 需要发送短信的手机号码
    $phoneNumbers = ["15001234567"];
    // 短信模板ID,需要在短信应用中申请
    $templateId = 88888;  // NOTE: 这里的模板ID`7839`只是一个示例,真实的模板ID需要在短信控制台中申请
    $order=$_POST["order"];
    $date=$_POST["date"];
    $acc=$_POST["acc"];
    $code=$_POST["code"];
    //将软件提交的数据组合成消息文本
    $msg="验证码".$order.",".$acc."您预订成功,订单信息".$date."日".$code."次,请及时确认。";	
    //验证码{1},{2}您预订成功,订单信息{3}日{4}次,请及时确认。
    // 签名
    $smsSign = "淬剑阁"; // NOTE: 这里的签名只是示例,请使用真实的已申请的签名,签名参数使用的是`签名内容`,而不是`签名ID`
    // 单发短信
    try {
        $ssender = new SmsSingleSender($appid, $appkey);
        $result = $ssender->send(0, "86", $phoneNumbers[0],
            $msg, "", "");
        $rsp = json_decode($result);
        echo $result;
    } catch(\Exception $e) {
        echo var_dump($e);
    }
?>