C语言socket相关函数
网络编程中的一些函数的具体用法
socket创建过程的一些函数套接字创建函数12345678#include <sys/socket.h>int socket(int domain, int type, int protocol); //函数原型 if (-1==(listend=socket(AF_INET,SOCK_STREAM,0))) { perror("create listen socket error\n"); exit(1); }
创建套接字,成功时返回文件描述符,失败时返回-1
绑定函数12345678#include <sys/socket.h>int bind(int sockfd, struct sockaddr *myaddr, socklen_t addrlen); //函数原型if (-1==bind(listend,(struct sockaddr *)&server,sizeof(struct sockaddr))) //server是事先定义好了的{ per ...
C语言网络编程中几个结构体的用法
C语言网络编程中有很多结构体,其中很多的结构体对我来说很混乱,难以记住,想要先整理一下
用来处理网络通信的地址struct sockaddrsockaddr在头文件#include <sys/socket.h>中定义
1234struct sockaddr { unsigned short sa_family; /* 地址族, AF_xxx */ char sa_data[14]; /* 14字节的协议地址*/};
struct sockaddr_insockaddr_in在头文件#include<netinet/in.h>或#include <arpa/inet.h>中定义
123456struct sockaddr_in { short int sin_family; /* 地址族 */ unsigned short int sin_port; /* 端口号 */ struct in_addr sin_addr; /* Internet地址 */ unsigned cha ...
关于python中beautifulsoup库的用法(超简单)
前言之前有节实验课研究了爬虫,我深刻地感觉到了xpath就不适合玩爬虫(个人见解),于是我开始试着重新复习beautifulsoup库了
beautifulsoup库的使用安装和引用安装直接pip安装就好了
1pip install bs4
引用
1from bs4 import BeautifulSoup
创建对象1soup = BeautifulSoup(res_text,"html.parser",from_encoding="utf-8")
html.parser 是一个算是用于解释html文档的东西
使用首先我需要一个html文档,一般来说是用了requests模块以后得来的content
然后使用的语法
查找标签123456test1 = soup.findAll('a') #这个是指我要这个文档里面所有的a标签,包括了<a>一起,有一个像是list的返回,类型叫做ResultSettest2 = soup.findAll('a',class_='xxx') ...
numpy的学习笔记
前言众所周知,numpy是机器学习和深度学习的基础,数据运算在数据挖掘领域也是有着丰富的用途,numpy、matplotlib的用法是很基础的事情,这里稍微总结一下,知识不多,学多少总结多少
菜鸟教程相关内容有很多,这里给个链接,我只总结一下少数东西
numpy的一些小用法数组在numpy中的数组,其实就是我们在线性代数中学习的矩阵,矩阵在线性代数的地位自然不用我多说,所以numpy、matplotlib中很多东西都离不开这个数组
数组创建(从头创建)1234import numpy as npx = np.empty([3,3]) #x是一个3行3列的矩阵,里面都是一些随机数,因为没有初始化y = np.zeros((2,2), dtype = np.int) #这个是全是0的2*2矩阵z = np.ones((2,2), dtype = np.int) #和上面一样
这就是普通的从头开始创建
数组创建(按数值范围创建)12345678x = numpy.arange(5) #[0 1 2 3 4] 这就是按照一个范围来的y = numpy.arange(10,20,2) ...
ctf基础题02
php2知识点总结:
一、关于phps
这是个没有想到的网站名,需要记一下
二、urldecode/urlencode
这是将不是英文和数字(准确来说是非ascii码的字符)进行一次url实体编码和解码的行为
注意:在浏览器中,输入的参数是会先经过url实体编码,变成形如%12(%和两个十六进制)的样子,再进行运算
unserialize3总结:
一、关于序列化和反序列化
总的来说就是php中的对象和字符串之间互相转换的一种方式
1234567891011class xctf{ public $flag = '111'; public function __wakeup() { exit('bad requests'); }}-----------------------序列化之后-------------------------O:4:"xctf":1:{s:4:"flag";s:3:"111"; ...
关于NLP的学习
深度学习的概念深度学习从广义上来讲就是程序可以自己学习自己的意思。是指一个已经写好的代码程序经过大量的数据使得自身得到了发展
总共有三个部分的特征:
一、反向传播算法
二、特征提取能力
三、端到端之间的学习方法
学习pytorch特点中间有三个特点:
1、完全符合python编程(tensorflow就不行,是在python语法和TensorFlow自己有些格式之间转换)
2、方便的张量(tensor)计算 –>可以将变量加载到GPU(图形处理器)上
3、对动态计算图的支持 —->动态计算图,是pytorch的特有特性,是可以用来表示反向传播算法的一种图示
使用pytorch进行深度学习的步骤构建神经网络模型12345neu = torch.nn.Sequential( torch.nn.Linear(input_size,hidden_size), #输入层到隐含层之间的线性运算 torch.nn.Sigmoid(), #作用在对隐含层的每一个神经元 torch.nn.Linear(hidden_size,output_size), #从隐含层到输出层的线性运算) ...
关于实训中的一些小知识
关于一些常用的payload这是一个在网页中输入的可以保证使用的payload,通过php文件可以看到很多东西
1xxx.xxx.xxx.xxx/?***=data://text/plain,<?php *** ?>
利用sql语句注入一句话木马的payload
1select "<?php *** ?>" into outfile "路径"
linux的常用命令查找想要查找从根目录 / 开始的文件名
1find / -name "文件名"
查找这个文件后面的所有文件
1find / -type f
php中的一些基础函数var_dump()函数这个函数是用来表示一个函数的类型和大小的
mb_strpos()函数和strpos()函数这个函数是用来用在要检测在字符串中的子串第一次出现的位置
12php > var_dump(mb_strpos('开始23测试ceshi', '测试'));int(4)
注意:这个是按照字来处理的, ...
ctf基础题
题目1:掀桌子菜狗截获了一份报文如下c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2,生气地掀翻了桌子(╯°□°)╯︵ ┻━┻解题我们可以看出这个“c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1…”这种格式,就是一个“\xc8\xe9..”这个样子的格式
所以这个好像是和字节ascii码有关,所以我们可以用把这个报文分组,这是个字节流
所以把这个字节流变化一下
变化的代码:
也就是把字节流两两分组,又因为ascii码是8位并且首位是0,所以减128
所以就是在通过这个来变为flag
解决
题目2 ext3今天是菜狗的生日,他收到了一个linux系统光盘(附带了一个文件)这个题是关于winhex运用的题,我已经很久没有用过winhex了,这次又把它重新安装了回来
注:”ext”这个是指ext文件系统,即linux文件系统winhex的一些重点
解题这个东西虽然说 ...
flask框架的使用教程
flask这个是关于我们要做的项目的学习
我们用了flask框架
虚拟环境虚拟环境的配置保证了到时候项目交接的时候
让别的组员不用也在pip上面 配置很多东西
直接就放在这个项目包里面了
配置文件在flask的文件项目里面可以自己新建一个settings.py
里面就是普通的关于配置的书写
12ENV ="development"DEBUG = True
然后在app.py中
1app.config.from_object(settings)
就可以开始实施配置文件了
路由在pycharm中弄了flask项目以后,有
123@app.route('/')def hello_world(): return 'Hello World!'
这个是一个装饰器,也就是可以翻译成
1234 def hello_world(): return 'Hello World!' app.add_url_rule('/',view_func=index)
将路由 ...
汇编语言的学习
汇编语言算数平移和逻辑平移关于这个平移问题,分为算术左右移和逻辑左右移
算术左移和逻辑左移:只要数字向左移动一位就好了,然后右边补0,其他都不用管
算术右移和逻辑右移:逻辑右移是很正常的,也就是只要向右移动,补补0就好了
而算术右移就不一样!
只有算术右移,是让符号位一起走
向右移动,并且补的是和符号位是一样的
也就是说要不是全补0要不是全补1
IEEE浮点数编码首先你要知道怎么是一个小数的十进制变二进制
但我觉得我已经知道了我就不讲了
32位编码格式对于一个32位的浮点数,它的编码格式
在32位二进制串中,阶码部分用8位来存储,尾数部分用23位来存储,还有1位是符号位。
讲起来有点麻烦我直接上例子
例:12.25按照32位IEEE编码
符号位
12.25变成二进制:1100.01
因为是正数,符号位是0
阶码
阶码部分是这样的:
因为是1100.01,按照规则这是$$1.10001*2^3$$所以我们知道阶码数是127+3=130 (这是规定我也不知道为什么是这样)
130再变为二进制为:10000011
阶码也是8位,这个就是阶码
尾数部分
尾数是我们之前的$$1. ...