自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(114)
  • 收藏
  • 关注

原创 openrestry body_filter_by_lua_file无法建立TCP连接

在 body_filter_by_lua_file阶段,需要把body的内容写入redis中,但是发现redis无法建立连接。经过查询发现,这是openrestry的机制导致的。https://github.com/iresty/nginx-lua-module-zh-wiki解决方案:采用定时器的方式进行绕过...

2021-06-25 18:44:19 773 2

原创 爬取文章写入doc文件中

#-*-coding:utf-8-*-import requestsimport osimport timefrom docx.shared import Inchesimport docxfrom bs4 import BeautifulSoupheaders = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0"}def get_htm

2020-08-11 14:10:02 358

原创 Rsyslog在日志切割后不再同步日志的问题

这里写自定义目录标题Rsyslog配置同步日志,刚开始一切正常,但是到了第二天切割日志后,发现不再有日志同步。因为该日志文件inode未发生改变,但是文件offset偏移量与rsyslog所记录的不一样,导致rsyslog无法重新记录iCurrOffs解决方法:在子imfile配置中添加配置:reopenOnTruncate="on"官方文档:http://www.rsyslog.com/doc/master/configuration/modules/imfile.html...

2020-07-23 10:52:18 589

原创 openresty aes加密的补齐方式

github lua-string-resty地址:https://github.com/openresty/lua-resty-stringlua代码:local aes = require "resty.aes"local str = require "resty.string"local iv = "78afc8512559b62f"local key = "78afc85...

2020-04-15 11:24:29 3836

原创 nginx lua gzip解压缩INFLATE: Data error, no input bytes报错问题解决

nginx lua 对gzip请求数据包解压失败的问题背景问题复现解决思路解决方法背景我使用openresty+lua部署的nginx服务器,其中使用gzip针对数据包进行解压缩处理,然后再对部分数据修改完毕后,使用gzip进行压缩,然后再发送给接收端。zlib参考如下https://github.com/hamishforbes/lua-ffi-zlib问题复现在使用上述github...

2019-12-16 12:50:56 1250 3

原创 Nginx ngx_http_addition_module 404问题

过滤模块可以在响应体的前面或后面附加上数据404问题在重新编译了nginx后,增加了ngx_http_addition_module 模块,用来在response数据后面增加其他自定义信息。但是在调试时一直报404 error,经调试分析配置如下:location / { root html; index html; ...

2019-10-14 15:44:50 242

原创 Nginx Etag学习

Nginx Etag学习Nginx Etag什么是EtagLast-Modified / If-Modified-SinceEtag工作原理为什么要使用EtagEtag字符含义强Etag和弱EtagEtag丢失问题Etag配置Etag带来的问题Nginx Etag什么是EtagEtag其实是一个页面的Hash值,当浏览器刷新页面的时候,浏览器会发送页面的Etag值,让服务器进行比较,服务器如...

2019-09-30 14:02:29 4243

原创 ImportError: cannot import name 'Bar' from 'pyecharts'

报错信息:发现我是用的是最新的1.10版本,而作者团队决定不再维护之前的版本,新版本中的导入方式有些许变化,我没有仔细阅读from pyecharts.charts import Bar这样就没有报错了,欢迎交流评论。...

2019-08-08 18:30:49 14034 6

原创 解决 python3.7 无法使用ssl模块的问题

安装python3.7之前需要升级openssl,系统自带的openssl版本太低1.下载最新版opensslhttps://www.openssl.org/source/openssl-1.1.1-pre8.tar.gz2.编译安装cd openssl-1.1.1-pre8./config --prefix=/usr/local/opensslmakemake install...

2019-07-30 15:18:40 2468 1

原创 python获取微信群成员信息

python获取微信群成员信息#!/usr/bin/python #coding: utf-8 import itchat,datetimefrom itchat.content import TEXTclass WeChat(object): def get_all_info_from_wechat(self): itchat.auto_login(enableCmdQR =...

2019-02-15 11:38:21 10469 1

原创 Axure rp8.1.0.3381激活码(亲测可用)

Axure rp8.1.0.3381激活码(亲测可用)Axure rp8.1.0.3381激活码(亲测可用)Axure rp8.1.0.3381激活码(亲测可用)License:zd423Key:LrZoHQetrL7OK8XOVWgvTFn+XOR32hQkrxkYj0CkbDUsvvENp6GCS38B8GiOS1ec...

2018-12-27 11:18:46 2681 1

原创 Linux 安装bundler命令

安装命令gem install bundler如果没有gem命令yum install ruby ruby-devel -y

2018-12-17 16:06:57 3496

原创 fluent配置match报not writable错误

fluent配置match错误错误信息原因错误信息2018-12-06 19:12:05 +0800 [warn]: secondary type should be same with primary one primary=“Fluent::TreasureDataLogOutput” secondary=“Fluent::Plugin::FileOutput”2018-12-06 19...

2018-12-10 18:32:53 1969

原创 mv -f bash导致ssh无法登陆的问题分析

背景及复现在centos6.6的机器上,拷贝了一个centos6.0机器上的bash文件,通过mv -f将centos6.0的bash替换了centos6.6机器上的bash,然后重新使用xshell登陆,发现登陆不成功分析及原因同事通过几次调试发现,跟selinux有关,如果开起了Selinux,则会出现该问题,如果关闭则不会出现该问题查阅资料发现,可能是linux的Se...

2018-08-02 17:40:03 485

原创 虚拟机NAT模式下无法获取IP的解决方法

错误信息no link present check cable方法在ifcfg-eth0配置文件加上check_link_down(),,不过不管用后来发现,是虚拟机的NAT服务没有开启运行输入services.msc打开服务,然后找到VMware的相关dhcp、nat服务启动,然后在重启网卡,发现能正常获取ip问题和下面的链接问题一样,感谢他提供的解决思路参考链接...

2018-07-13 10:30:45 7596

原创 Java的JNA调用C语言的So动态链接库

Java的JNA调用C++的So动态链接库Java的JNA调用C++的So动态链接库JNA简介JNA技术原理JNA链接JNA ExamplesJNA demo编写So设置JNA的jar包编写Java参考链接JNA简介先说JNI(Java Native Interface)吧,有过不同语言间通信经历的一般都知道,它允许Java代码和其他语言(...

2018-06-22 14:22:28 10395 1

原创 std::string内存泄露问题之分析解决

std::string使用错误导致的内存泄露分析参考链接: http://www.cppblog.com/qinqing1984/archive/2009/08/07/92479.html复原在一次编程中,对性能进行测试发现有明显的内存泄露,定位到一个函数获取字符串赋值给一个string对象,屏蔽这行,就没有内存泄露,或者使用cout打印下这个string对象,内存也不泄露,特别诡异

2018-02-07 15:43:47 5766 1

原创 一个Lex/Yacc完整的示例(转)

本框架是一个lex/yacc完整的示例,包括详细的注释,用于学习lex/yacc程序基本的搭建方法,在linux/cygwin下敲入make就可以编译和执行。大部分框架已经搭好了,你只要稍加扩展就可以成为一个计算器之类的程序,用于《编译原理》的课程设计,或者对照理解其它lex/yacc项目的代码。本例子虽小却演示了lex/yacc程序最重要和常用的特征:* lex/yacc程序组成结构、文件格式。

2017-12-18 15:01:39 16180

原创 golang sync WaitGroup

刚才看golang的sync的包,看见一个很有用的功能。就是WaitGroup。先说说WaitGroup的用途:它能够一直等到所有的goroutine执行完成,并且阻塞主线程的执行,直到所有的goroutine执行完成。WaitGroup总共有三个方法:Add(delta int),Done(),Wait()。简单的说一下这三个方法的作用。Add:添加或者减少等待goroutine的数量Done:相

2017-12-11 10:53:36 392

原创 代码判断linux网卡是否是promisc模式

ifconfig是我们查看/设定网口状态常用的命令,其实这个命令就是对一些系统函数的封装,通过对struct ifreq的修改,我们可以很轻易地设定网口状态,获取网口状态。这个结构体位于/** * \file getifstat.c * \author wzj * \brief 访问这个struct ifconf 修改,查询状态 * \version * \note

2017-08-16 16:51:11 1604

原创 Go语言学习之signal(二)

package mainimport ( "bytes" "errors" "fmt" "io" "os" "os/exec" "os/signal" "runtime/debug" "strconv" "strings" "sync" "syscall" "time")func main()

2017-07-02 21:36:15 3417

原创 Go语言学习之JSON RPC

serverpackage mainimport ( "errors" "fmt" "net" "net/rpc" "net/rpc/jsonrpc" "os")type Args struct { A, B int}func checkError(err error) { if err != nil { fmt.F

2017-06-21 20:56:53 2797

原创 Go语言学习之TCP RPC

serverpackage mainimport ( "errors" "fmt" "net" "net/rpc" "os")type Args struct { A, B int}type Quotient struct { Quo, Rem int}type Arith intfunc (t *Arith) Multiply(args

2017-06-15 21:55:55 903

转载 你应该知道的 RPC 原理

http://blog.jobbole.com/92290/

2017-06-15 21:28:46 366

原创 golang []byte和string相互转换

package mainimport ( "fmt")func main() { str2 := "hello" data2 := []byte(str2) fmt.Println(data2) str2 = string(data2[:]) fmt.Println(str2)}

2017-06-11 11:14:32 44558

原创 Go web编程学习(一)

Go web服务器package mainimport ( "fmt" "log" "net/http" "strings")func sayhelloName(w http.ResponseWriter, r *http.Request) { r.ParseForm() fmt.Println(r.Form) fmt.Println("pa

2017-05-24 22:53:06 629

原创 Go语言的哈希函数

Go的 MD5、SHA-1函数使用方法package mainimport ( "crypto/md5" "crypto/sha1" "fmt" "io" "os")func main() { teststring := "welcome to beijing" //MD5 Md5Inst := md5.New() Md5Ins

2017-05-17 23:10:13 4415

原创 xpath解析xmlns字段的xml文件

如果xml文件中有xmlns命名空间,则普通xpath语法无法解析解决方法: 参考链接: http://stackoverflow.com/questions/5239685/xml-namespace-breaking-my-xpath

2017-04-06 15:19:07 1714

原创 c语言利用inet_pton 函数检查ip合法性(转)

#include <arpa/inet.h>#include <stdlib.h>#include <stdio.h>#include <string.h>int check_ipaddr (char *str) {if (str == NULL || *str == '\0')return 1;struct sockaddr_in6 addr6; struct sockaddr_in

2017-03-24 11:40:15 2451

原创 rpm命令安装低版本rpm包

rpm 安装低版本rpm包如果使用rpm -Uvh命令想强制安装一个低版本的安装包,则会提示已经安装过,导致安装失败。下面是解决方案: 使用命令 rpm -Uvh –oldpackage 进行安装即可!

2016-11-28 11:58:15 14667

原创 如何在main函数外获取main函数的参数(argc、argv)

如何在main函数外获取main函数的参数(argc、argv)在main函数主函数外不采用全局变量的方式获取argc、argv调用attribute,在程序的.init_array字段添加指定函数地址,其传入的参数中就有argc、argv参数。代码示例#include <stdio.h>#include <string.h>static void get_main_para_test(int a

2016-11-21 20:25:15 6426

原创 linux下ss命令源码学习(二):linux c代码获取后台进程名称及pid

该代码来源于ss命令源码#include <stdio.h>#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <syslog.h>#include <fcntl.h>#include <sys/ioctl.h>#include <string.h>#include <arpa/inet.h>#inclu

2016-10-29 09:41:41 1615

原创 linux下ss命令源码学习(一):进程名、pid的获取及存储

linux ss源码学习进程名、pid的获取及存储当执行ss -p命令时,会返回进程的名称、pid信息,接下来就分析一下该信息是如何获取及存储的获取1、 当指定p参数时, 会将全局变量show_users进行++操作,之后会执行user_ent_hash_build()函数。2、 该函数第一步首先获取环境变量PROC_ROOT的值,若为空,则默认路径为/proc/目录3、

2016-10-27 18:27:04 5406

原创 unable to initialize decompress status for section .zdebug_info解决办法

使用NetBeans编译时出现如下问题unable to initialize decompress status for section .zdebug_info原因是因为编译时的ld,版本比较久了ld的该bug在2015年7月份才解决,故重新编译并使用2016年新版本的ld,即可解决该问题

2016-09-27 19:05:36 5825

原创 Hydra源码分析学习

Hydra源码学习由于工作需要,阅读了hydra的源码,现整理一下,方便后期翻阅学习Hydra的简介及用法 关于hydra的简介及用法,网上有很多的资料,本次便不在赘述Hydra中需要知道的几个点1、 密码、用户名存储格式 Hydra的使用可以直接读取用户名表和密码表,读出数据后,每个地段中间使用’\0’进行切割,故使用printf和string.h的函数在此地不可用。 例如: Us

2016-09-23 17:16:42 3290 5

原创 从一个数组里面获取最大的几个数字代码实现

从一个数组里面获取最大的n个算法思路 首先获取前n个数字,进行排序,之后遍历原数组,与新数组中最小的进行比较,如果大于新数组中的最小值,则进行替换,并将新数组再次排序,一次类推go语言实现package mainimport ( "fmt" "sort")func main() { var i int a := []int{2, 4, 15, 6, 57,

2016-08-09 18:35:14 3162

原创 Python实现根据IP地址和子网掩码算出网段的方法

直接上干货from IPy import IPIP(IP).make_net(Netmask)应用场景本人需要根据已有的IP和netmask,来计算出ip的范围,与原有的ip范围进行比较,判断是否有重叠C语言实现:struct in_addr oa_ip,oa_mask;unsigned int oi_ip, oi_mask,oi_sip,oi_eip;inet_pton(AF_INET,ip,

2016-07-13 16:15:55 15036

原创 GO语言学习:JSON处理

GO语言学习之JSON处理JSON代码package mainimport ( "encoding/json" "fmt")type Book struct { Title string Authors string Publisher string IsPublished bool Price floa

2016-06-22 20:14:30 736

原创 curl学习(三):使用POST的处理方法

使用POST的处理方法#include <stdio.h>#include <string.h>#include <curl/curl.h>char recv_buffer[10240] = {0};size_t recv_buffer_len;#define MIN(x,y) ((x)<(y)?(x):(y))static size_t fun_callback(void *buffer,

2016-06-13 19:09:39 689

原创 curl学习(二):获取http和https请求

curl获取http和https请求HTTP#include <stdio.h>#include <string.h>#include <curl/curl.h>char recv_buffer[10240] = {0};size_t recv_buffer_len;#define MIN(x,y) ((x)<(y)?(x):(y))static size_t fun_callback(vo

2016-06-13 18:58:56 901

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除