当前位置: 首页 > news >正文

CSI Tool 安装及配置记录

一、Ubuntu安装

1.下载Ubuntu

首先安装Ubuntu 14.04 LTS

64位下载地址(页面中第一个链接)

2.制作启动盘(注意备份)

可以使用官方的工具Rufus,下载地址:https://rufus.ie/
打开Rufus,先备份好原来U盘里的文件,SELECT刚刚下载的iso文件,点击START就可以了。

3.打开新电脑的BIOS设置

把刚刚做好的启动盘插入电脑,然后打开按住Del键打开BIOS的界面,默认的都是从硬盘 boot的,这里需要设置优先级,首先从USB boot。不同的电脑打开BIOS的方法不同,我的是用Del键。

4.继续开机,安装Ubuntu

从u盘boot后,按需选择安装的方式,这里建议直接覆盖安装,以免不同版本文件混淆。当然安装前如果有电脑里有重要的文件记得备份好。大概几分钟就好了。
完了首先打开安装终端(热键:Ctrl + Alt + T),先检查一下内核版本是否内核3.2-4.2版本之间。
查看内核版本命令:

cat /proc/version

然后再检查一下无线网卡是否能够正常使用,命令:

ifconfig

5.换apt源

apt默认是外国的源,会比较慢,替换为国内的镜像源,速度会快一些。

5.1 备份:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

5.2 编辑list文件:

sudo gedit /etc/apt/sources.list

5.3 将source.list中的内容替换

清华源 ubuntu版本:14.04 LTS

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-security main restricted universe multiverse# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-proposed main restricted universe multiverse

5.4 更新apt:

sudo apt-get update

二、CSI Tool安装

接下来安装CSI Tool,按顺序依次执行就行。

1.安装依赖

sudo apt-get -y install git-core kernel-package fakeroot build-essential ncurses-dev 
sudo apt-get -y install libnl-dev libssl-dev
sudo apt-get -y install iw

2.下载编译内核

2.1 下载精简版内核

精简版内核:intel-5300-csi-github-master.tar.gz
下载地址:https://download.csdn.net/download/u014645508/10579514

2.2 解压

将上一步下载的压缩包利用U盘拷贝到Ubuntu系统Home目录下,准备在Ubuntu上解压。解压命令:

tar -xvf intel-5300-csi-github-master.tar.gz

2.3 编译

cd intel-5300-csi-github
make oldconfig

一直按回车确定

make menuconfig

弹出窗口,生成一个.config文件,先选择save,再exit即可

make -j3

整个流程中最为耗时的一步,我的机器大约需要运行半小时。3这个参数可以理解为编译的速度,机器性能比较优良的话可以使用 make -j5。

sudo make install modules_install

安装相关模块,耗时十五分钟左右。这一步执行以后刚开始可能会弹出couldn‘t load 等字样,这是因为还没有执行下一步,加载不出是正常的。

sudo make install
sudo make install modules_install

2.4 替换内核并更新

sudo mkinitramfs -o /boot/initrd.img-`cat include/config/kernel.release` `cat include/config/kernel.release`
make headers_install

我理解这一步作用是安装与后续编译有关的文件

sudo mkdir /usr/src/linux-headers-`cat include/config/kernel.release`
sudo update-grub 

这两步是操作和移动release的内核

备注:


在灵魂的博客中,命令有所不同,需确认

sudo mkdir /usr/src/linux-headers-`cat include/config/kernel.release`
sudo cp -rf usr/include /usr/src/linux-headers-`cat include/config/kernel.release`/include

这里可能会遇到一个问题:内核编译后不显示新添加的启动项选项,可按照如下方式使之显示出来。

cd /etc/default

sudo gedit grub

注释下面一行

#GRUB_HIDDEN_TIMEOUT=0

然后保存。

sudo update-grub 

2.5 重启

sudo reboot

重启之后进入4.2.0的内核 可以通过 cat /proc/version确认

以后每次都进该版本内核,否则收不到数。

3.替换固件

git clone git://github.com/dhalperi/linux-80211n-csitool-supplementary.git
for file in /lib/firmware/iwlwifi-5000-*.ucode; do sudo mv $file $file.orig; done
sudo cp linux-80211n-csitool-supplementary/firmware/iwlwifi-5000-2.ucode.sigcomm2010 /lib/
sudo ln -s iwlwifi-5000-2.ucode.sigcomm2010 /lib/firmware/iwlwifi-5000-2.ucode

替换固件工作完成。

4.编译收数文件

切换至netlink目录,准备编译

cd ~/linux-80211n-csitool-supplementary/netlink
make

这一步是编译生成log_to_file等文件。log_to_file可以实现收数功能。如果这一步报错可能是前面make_headers步骤出了错。我们有需要的话可以自行修改log_to_file.c文件,但之后需要在该目录下重新编译,即执行

make clean

make

5.修改驱动

cd ~/intel-5300-csi-github/drivers/net/wireless/iwlwifi/dvm
cp main.c main.bak.c
gedit main.c

打开main.c文件,按Ctrl+F搜索“connector_log”

将“priv->connector_log=iwlwifi_mod_params.connector_log;”注释掉,修改为“priv->connector_log=1;后保存

6.重新编译

cd ~/intel-5300-csi-github
sudo make install modules_install
sudo make install
sudo update-grub

备注:

在灵魂的博客中,第二个sudo make install modules_install前需要先进行sudo make -j3 (待验证)

三、AP模式收数

1.电脑连上路由器

我将安装好的电脑作为client,连接一台没有密码的路由器(有密码的是连不上的)。还有方案是利用create ap生成软AP的方法。

2.ping 路由器

在终端输入:

ping 101.6.69.105 -i 0.5

101.6.69.105是路由的ip地址,-i 0.5表示发送间隔0.5s,如果间隔小于0.5s需要加上sudo。

3.收数

新建终端,在新终端中输入:

cd ~/linux-supplementary/netlink
sudo ./log_to_file test.dat

四、monitor模式收数

monitor模式可以设定信道和发送的参数:如信道编号,信道带宽,发包数量,发包长度,发包模式以及发包间隔,相比AP模式有诸多优点。硬件上,也需要两台装有5300网卡的电脑。

1.安装Iorcon

sudo apt-get install libpcap-dev
git clone https://github.com/dhalperi/lorcon-old.git

若已手动下载lorcon-old, 放在HOME文件夹,跳过上一步。

cd lorcon-old
 ./configure
make
 sudo make install
cd ~/linux-80211n-csitool-supplementary/injection
make

2.替换脚本

原本injection文件夹里的脚本可能会存在一些问题,可以用这里的脚本替换原来的脚本。发送端替换setup_inject.sh,接收端替换setup_monitor_csi.sh就可以了。如果两台电脑互相发就把两台电脑的setup_inject.sh和setup_monitor_csi.sh都分别替换掉。

2.1 接收端 setup_monitor_csi.sh

A电脑作为接收端,ctrl+alt+T打开终端窗口,运行

cd ~/linux-supplementary/injection
cp setup_monitor_csi.sh setup_monitor_csi.bak.sh
gedit setup_monitor_csi.sh 

打开setup_monitor_csi.sh,将其中的内容替换为以下内容:

setup_monitor_csi.sh

#!/usr/bin/sudo /bin/bash
service network-manager stop
SLEEP_TIME=2
WLAN_INTERFACE=$1
if [ "$#" -ne 3 ]; thenecho "Going to use default settings!"chn=64bw=HT20
elsechn=$2bw=$3
fi
echo "Bringing $WLAN_INTERFACE down....."
ifconfig $WLAN_INTERFACE down
while [ $? -ne 0 ]
doifconfig $WLAN_INTERFACE down
done
sleep $SLEEP_TIME
echo "Set $WLAN_INTERFACE into monitor mode....."
iwconfig $WLAN_INTERFACE mode monitor
while [ $? -ne 0 ]
doiwconfig $WLAN_INTERFACE mode monitor
done
sleep $SLEEP_TIME
echo "Bringing $WLAN_INTERFACE up....."
ifconfig $WLAN_INTERFACE up
while [ $? -ne 0 ]
doifconfig $WLAN_INTERFACE up
done
sleep $SLEEP_TIME
echo "Set channel $chn $bw....."
iw $WLAN_INTERFACE set channel $chn $bw

注意,每个段落的空格必须是一个tab,若不是需手动修改。否则会在运行bash时报错。

修改后执行

./setup_monitor_csi.sh wlan0 13 HT20

参数wlan0是网卡名称,可运行iwconfig命令查看;13为2.4G频段信道编号,如果只填了网卡名称,信道编号和HT模式会使用默认值64+HT20(5G频段)

cd ~/linux-80211n-csitool-supplementary/netlink/
sudo ./log_to_file test.dat 

 

2.1发送端:setup_inject.sh

打开发送端电脑,进行操作:

cd ~/linux-supplementary/injection
cp setup_inject.sh setup_inject.bak.sh
gedit setup_inject.sh 

打开setup_inject.sh,将其中的内容替换为以下内容:

setup_inject.sh

#!/usr/bin/sudo /bin/bash
service network-manager stop
WLAN_INTERFACE=$1
SLEEP_TIME=2
modprobe iwlwifi debug=0x40000
if [ "$#" -ne 3 ]; thenecho "Going to use default settings!"chn=64bw=HT20
elsechn=$2bw=$3
fi
sleep $SLEEP_TIME
ifconfig $WLAN_INTERFACE 2>/dev/null 1>/dev/null
while [ $? -ne 0 ]
doifconfig $WLAN_INTERFACE 2>/dev/null 1>/dev/null
done
sleep $SLEEP_TIME
echo "Add monitor mon0....."
iw dev $WLAN_INTERFACE interface add mon0 type monitor
sleep $SLEEP_TIME
echo "Bringing $WLAN_INTERFACE down....."
ifconfig $WLAN_INTERFACE down
while [ $? -ne 0 ]
doifconfig $WLAN_INTERFACE down
done
sleep $SLEEP_TIME
echo "Bringing mon0 up....."
ifconfig mon0 up
while [ $? -ne 0 ]
doifconfig mon0 up
done
sleep $SLEEP_TIME
echo "Set channel $chn $bw....."
iw mon0 set channel $chn $bw

3.

./setup_inject.sh wlan0 13 HT20
sudo echo 0x4101 | sudo tee /sys/kernel/debug/ieee80211/phy0/iwlwifi/iwldvm/debug/monitor_tx_rate

这一步可以写成脚本

0x4101这部分参数设置具体参见下图,该图引自CSI Tool安装使用讲解

比如0x1c101表示支持选择三根天线发送、OFDM下的HT20模式,不过Rate Selection部分对应速率尚不明。

 4. 

sudo ./random_packets 100000 100 1

  第一个参数:包的数量 第二个参数:包的长度 第三个参数:包与包间delay(微秒)。

执行了上述所有操作后,我们可在接收端看到A电脑收到了数据,之后就可以解析了 

4.可能出现的问题

4.1可能收不到数的原因

可能原因
1.硬件原因:调整好天线的角度和方向,确保发送机和接收机在一个平面上。
2.软件原因:①如果用灵魂序曲的教程(指路:https://blog.csdn.net/u014645508/article/details/82993718?utm_source=blogxgwz1),软件安装完了收不到数,可能是因为驱动没改好,可以改驱动也可以直接用这篇文章的脚本替换灵魂序曲的教程里的脚本。
②monitor_tx_rate参数是否配置正确,上图中的每个比特的含义仔细检查。

若接收不到,看wlan用802.11 n 模式

参考灵魂:https://blog.csdn.net/u014645508/article/details/81359409

Linux CSI Tool 完整使用说明(一发一收,monitor模式)(权威版 已成功测试)_Leming Shen的博客-CSDN博客_csi tool

华为:https://huaweicloud.csdn.net/63563932d3efff3090b5b24b.html?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~activity-3-112338240-blog-117101853.pc_relevant_aa2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~activity-3-112338240-blog-117101853.pc_relevant_aa2&utm_relevant_index=4#1_265?login=from_csdnhttps://huaweicloud.csdn.net/63563932d3efff3090b5b24b.html?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~activity-3-112338240-blog-117101853.pc_relevant_aa2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~activity-3-112338240-blog-117101853.pc_relevant_aa2&utm_relevant_index=4#1_265?login=from_csdn

相关文章:

CSI Tool 安装及配置记录

一、Ubuntu安装 1.下载Ubuntu 首先安装Ubuntu 14.04 LTS 64位下载地址(页面中第一个链接) 2.制作启动盘(注意备份) 可以使用官方的工具Rufus,下载地址:https://rufus.ie/ 打开Rufus,先备份…...

华为OD机试 - 最低位排序(Python)| 真题+思路+代码

最低位排序 题目 给定一个非空数组(列表),起元素数据类型为整型, 请按照数组元素十进制最低位从小到大进行排序, 十进制最低位相同的元素,相对位置保持不变, 当数组元素为负值时,十进制最低为等同于去除符号位后对应十进制值最低位。 输入 给定一个非空数组(列表) 其…...

C#开发的OpenRA使用TrimExcess方法

C#开发的OpenRA使用TrimExcess方法 当你在细看OpenRA的代码,就会发现在下面这段代码添加了一个方法: foreach (var nodes in levels) nodes.TrimExcess(); 在上面代码里遍历整个节点列表,把所有节点都调用TrimExcess方法处理一下, 这样做的意义何在?为什么我们在一般的代码…...

ImageMagick任意文件读取漏洞(CVE-2022-44268)

0x00 前提 前几天爆出一个 ImageMagick 漏洞 ,可以造成一个任意文件读取的危害比较可观,最近有时间来复现学习一下 主要是影响的范围很大,很多地方都有这个问题,需要来学习一下 0x01 介绍 ImageMagick 是一个免费的开源软件套…...

第十九篇 ResNet——论文翻译

文章目录 摘要1 引言2 相关工作3 深度残差学习3.1 残差学习3.2 快捷恒等映射3.3 网络架构3.4 实现4 实验4.1 ImageNet 分类4.2 CIFAR-10 和分析4.3 PASCAL 和 MS COCO 上的物体检测🐇🐇🐇🐇🐇🐇 🐇 欢迎阅读 【AI浩】 的博客🐇 👍 阅读完毕,可以动动小手赞一…...

RiProRiProV2主题美化顶部增加一行导航header导航通知

背景: 有些网站的背景顶部有一行罪行公告,样式不错,希望自己的网站也借鉴过来,本教程将指导如何操作,并调整成自己想要的样式。 比如网友搭的666资源站 xd素材中文网...

RT-Thread MSH_CMD_EXPORT分析

RT-Thread MSH_CMD_EXPORT分析 1. 源码分析 在rt-thread中,使用FinSH,可以支持命令行。在源码中,使用MSH_CMD_EXPORT导出函数到对应命令。 extern void rt_show_version(void); long version(void) {rt_show_version();return 0; } MSH_CM…...

电脑麦克风没声音怎么办?这3招就可以解决!

最近有用户在使用电脑麦克风进行视频录制时,发现麦克风没有声音。这是什么原因?电脑麦克风没有声音怎么办?关于解决方案,我专门整理了三种方法来帮你们,一起来看看吧! 操作环境: 演示机型&#…...

【C++】运算符重载

运算符重载 C为了增强代码的可读性引入了运算符重载,运算符重载是具有特殊函数名的函数,也具有其返回值类型,函数名以及参数列表。其返回值类型和参数列表与普通的函数类型。 函数名字为:关键字operator后面接需要重载的运算符号…...

什么是眼图?(扫盲向)

什么是眼图?(扫盲向) Ref: What’s eye diagram? 1 基础图示 眼图 2 用途 常用于评估差分链路中的信号传输质量 "眼睛"张得越开,链路信号质量越好 3 观测原理 眼图是传输信号序列在时域上的叠加 4 观测参数 4…...

【C++】类与对象(二)

前言 在前一章时我们已经介绍了类与对象的基本知识,包括类的概念与定义,以及类的访问限定符,类的实例化,类的大小的计算,以及C语言必须传递的this指针(C中不需要我们传递,编译器自动帮我们实现&…...

【软考】系统集成项目管理工程师(二十一)项目收尾管理

1. 项目验收2. 项目总结3. 系统维护4. 项目后评价补充:人员转移和资源遣散广义的系统集成项目收尾管理工作通常包含四类典型的工作:项目验收工作、项目总结工作、系统维护工作 以及 项目后评价工作,此外项目团队成员的后续工作也应在收尾管理时妥善安排;狭义的系统集成项目…...

关于公钥与私钥的一点看法

故事的起源 私密性 之前,用户a想给用户b发消息,a希望他自己发出现的消息,只能被b读懂。也就是说a希望发出去的数据是被加密过的,收到消息的人可以是b,c,d,e等等。但是只有b能被读懂。 这个需求…...

深入React源码揭开渲染更新流程的面纱

转前端一年半了,平时接触最多的框架就是React。在熟悉了其用法之后,避免不了想深入了解其实现原理,网上相关源码分析的文章挺多的,但是总感觉不如自己阅读理解来得深刻。于是话了几个周末去了解了一下常用的流程。也是通过这篇文章…...

32个关于FPGA的学习网站

语言类学习网站 1、HDLbits 网站地址:https://hdlbits.01xz.net/wiki/Main_Page 在线作答、编译的学习Verilog的网站,题目很多,内容丰富。非常适合初学Verilog的人!!! 2、牛客网 网站地址:http…...

5分钟快速上手Promise使用

promise 是处理异步编程的一种处理方式,可以将异步操作按照同步操作的方式编写。是一个对象或者构造函数,里面存放着某个未来才会执行的结果的方法(一般就是异步操作) 自己身上有all、reject、resolve这几个方法,原型上…...

大客户市场:阿里云、腾讯云、华为云“贴身肉搏”

配图来自Canva可画 近年来,随着中国逐渐进入数字化经济快车道,国内企业数字化、智能化升级已是刻不容缓。而为了帮助自身或其他企业实现数字化转型升级,阿里、腾讯、百度、京东、字节、网易、华为等众多国内知名企业早在多年以前&#xff0c…...

华为OD机试 - 求字符串中所有整数的最小和(Python)| 真题+思路+代码

求字符串中所有整数的最小和 题目 说明 字符串 s,只包含 a-z A-Z + - ;合法的整数包括 1) 正整数 一个或者多个0-9组成,如 0 2 3 002 102 2)负整数 负号 - 开头,数字部分由一个或者多个0-9组成,如 -0 -012 -23 -00023输入 包含数字的字符串 输出 所有整数的最小和 …...

企业电子招投标采购系统源码之首页设计

​​ 功能模块: 待办消息,招标公告,中标公告,信息发布 描述: 全过程数字化采购管理,打造从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理。通供应商门户具备内外协同的能力,为…...

浅谈一下前端工作中全流程多层次的四款测试工具

在应届生找工作的时候,我们经常会见到一条招聘要求:要求实习经历。或者 有实习经历者优先。 为什么大部分公司在招聘时,都要求你必须有实习经历? 商业项目与个人项目不同,一段实习经历,能够熟悉公司中成熟…...

【运算放大器】反相放大电路仿真应用

目录 一、反相放大电路原理(简化电路) 二、反相放大电路电路原理(实际特性) 2.1原理图 2.2实际电路 三、虚短 虚断 3.1 虚短 3.2 虚断 四、作业 4.1 (反相)放大电路设计 4.2 LM741芯片 五、标准…...

数组的操作

1.splice 1.splice 是数组的一个方法,使用这个方法会改变原来的数组结构,splice(index ,howmany , itemX);这个方法接受三个参数,我们在使用的时候可根据自己的情况传递一个参数&…...

Python - 文件基础操作

目录 文件的读取 open()打开函数 read类型 read()方法 readlines()方法 readline()方法 for循环读取文件行 close() 关闭文件对象 with open 语法 文件的写入 文件的追加 文件的读取 操作 功能 文件对象 open(file, mode, encoding) 打开文件获得文件对象 文件…...

react的useState源码分析

前言 简单说下为什么React选择函数式组件,主要是class组件比较冗余、生命周期函数写法不友好,骚写法多,functional组件更符合React编程思想等等等。更具体的可以拜读dan大神的blog。其中Function components capture the rendered values这句…...

SharpImpersonation:一款基于令牌和Shellcode注入的用户模拟工具

关于SharpImpersonation SharpImpersonation是一款功能强大的用户模拟工具,该工具基于令牌机制和Shellcode注入技术实现其功能,可以帮助广大研究人员更好地对组织内部的网络环境和系统安全进行分析和测试。 该工具基于 Tokenvator的代码库实现其功能&a…...

华为OD机试 - 最大相连男生数(Python)| 真题+思路+代码

最大相连男生数 题目 学校组织活动,将学生排成一个矩形方阵。 请在矩形方阵中找到最大的位置相连的男生数量。 这个相连位置在一个直线上,方向可以是水平的、垂直的、成对角线的或者反对角线的。 注:学生个数不会超过 10000。 输入 输入的第一行为矩阵的行数和列数,接下…...

GIS在地质灾害危险性评估与灾后重建中的实践技术应用及python机器学习灾害易发性评价模型建立与优化

地质灾害是指全球地壳自然地质演化过程中,由于地球内动力、外动力或者人为地质动力作用下导致的自然地质和人类的自然灾害突发事件。由于降水、地震等自然作用下,地质灾害在世界范围内频繁发生。我国除滑坡灾害外,还包括崩塌、泥石流、地面沉…...

2.13、进程互斥的硬件实现方法

1、中断屏蔽方法 利用 “开/关中断指令” 实现(与原语的实现思想相同,即在某进程开始访问临界区到结束访问为止都不允许被中断,也就不能发生进程切换,因此也不可能发生两个同时访问临界区的情况) 优点:简单…...

Leetcode力扣秋招刷题路-2335

从0开始的秋招刷题路,记录下所刷每道题的题解,帮助自己回顾总结 2335. 装满杯子需要的最短总时长 现有一台饮水机,可以制备冷水、温水和热水。每秒钟,可以装满 2 杯 不同 类型的水或者 1 杯任意类型的水。 给你一个下标从 0 开…...

C语言深度解剖-关键字(6)

目录 1. 浮点型与零的比较: 1.1 推导: 1.2 实践: 总结: 理解强制类型转换: 指针与零比较 switch case 语句: 写在最后: 1. 浮点型与零的比较: 1.1 推导: 例&am…...

大庆网站设计费用/网络优化器

生命不息,学习不止。如今快节奏的城市生活让我们没法腾出大量的时间去了解和学习新知识,那么我们该如何利用有限的碎片时间快速掌握最新最全的知识呢?我为大家精心准备了如下几个优质的公众号,其内容涵盖多种领域,且内…...

wordpress静态404/百度搜索推广费用

简单的动态顺序表需实现的接口函数有增删改查&#xff1b; 一个简单的顺序表就是数组 这里先创建一个顺序表 //动态 #pragma once //防止头文件被重复包含 //引用的头文件 #include<stdio.h> #include<string.h> #include<stdlib.h> #include<assert…...

安徽网络营销企业服务/网站seo思路

常见分布式session会话方案实现分布式session的方案非常多&#xff0c;选型时需要一种可靠、简单的实现方式&#xff0c;结合我们项目中的使用经验来看&#xff0c;使用基于Redis实现的分布式session方案还是比较靠谱的&#xff0c;同时&#xff0c;项目中还把session信息存储在…...

网站开发用什么/网站正能量免费推广软件

声明或定义&#xff0c;代表在内存中为变量开辟一片区域&#xff1b; 赋值&#xff0c;代表更改这块区域里的值&#xff1b; 初始化&#xff0c;代表开辟区域时赋值&#xff0c;不指定则赋该类型默认值&#xff1b;...

做民宿需要和多家网站合作吗/怎样优化网站关键词排名靠前

1.首先查看有哪些可操作选项: v4l2-ctl -d /dev/video0 --list-ctrls 2.将自动对焦标志设置为0: v4l2-ctl -d /dev/video0 --set-ctrlfocus_auto0 3.进入手动对焦,设置对焦距离,数值越小,焦距越大,数值越大,焦距越小: v4l2-ctl -d /dev/video0 --set-ctrlfocus_absolute466...

用vs2013做网站/南宁seo推广外包

Google近期宣布针对Google Cloud API的.Net支持。这包括C#绑定和PowerShell cmdlet。还有一个Visual Studio扩展&#xff0c;它允许在Google Compute Engine上浏览Google Cloud 资源和部署Asp.Net 应用。\\针对Google Cloud API的C#绑定\\该C#绑定提供对以下Google Cloud服务的…...